2012-02-07 49 views
1

私はこれを数時間で戦っています。何が起きているのか分かりません。私はいくつかのタブを持つアプリを持っています。このタブはTabGroupActivityによって管理されています。 このタブの1つで、私は透明な活動を開始しなければなりません。私が正常に(startActivityで)起動していれば、それは良いように見えますが、明らかにタブバーはクリックできません。透明性のために表示されますが、「到達可能」ではありません。ですから、タブバーを無理なくするには、特定のタブ内のアクティビティをサーフィンするためのメソッドstartChildActivityを定義する必要があります。しかし、私がそれをすると、活動が示されますが、透明ではなく、背景が黒です。 私はすべてを試しましたが、どのように修正できるのか分かりません。 以下は、問題が解決できると思うコードです。なぜなら、アクティビティの開始と子アクティビティの唯一の違いだからです。私はすべてのタブをロードする「メイン」の活動インサイド黒い背景を持つ透明な子アクティビティ

、各タブは次のように見ている関連活性を有する:

public class PreShowTabGroupActivity extends TabGroupActivity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      startChildActivity("PreshowActivity", new Intent(this, PreshowActivity.class)); 
     } 
    } 

透明でなければならない活動が「PreshowActivity」で開かれたものです。

次は、TabGroupActivityクラス内のstartChildActivityメソッドです。それは私の運を無意味に透明にしようとしています。

public void startChildActivity(String Id, Intent intent) { 
    Window window = getLocalActivityManager().startActivity(Id,intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 

    if (window != null) { 

     //window.set 
     mIdList.add(Id); 
     navController.notifyActivityChange();   
     setContentView(window.getDecorView()); 
     window.getAttributes().alpha = 0; 
     window.getDecorView().setBackgroundColor(Color.TRANSPARENT); 
     window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

    } 
} 

奇妙なことは、色の背景(REDなど)を置くと背景がその色に変わるということです。しかし、透明に設定すると背景は黒色になります。

私のマニフェストでは、私は透明テーマと半透明テーマの両方を試しましたが、運はありませんでした。

お手伝いいただければ、私はそれを高く評価します。

ありがとうございます!

+0

背後に黒い背景があり、それが本当に透明なので、背後に黒い背景が見えるのでしょうか? – AJcodez

+0

私は "startChildActivity"メソッドで以下のテストを行ったので、私はそれを確認しましたが、確かです。私はdecorViewの背景を赤、次に背景は透明、 BLACKの背景が表示されます。 – DiamondGerace

答えて

0

ここで「推測」という言葉を使用するのは申し訳ありませんが、これは教育的な「推測」のようなものです。 黒い背景が透明で表示される理由を理解できなかった同様の問題がありました。たとえば、黒色をREDに変更した場合、赤色が表示されます。 これは、formatというウィンドウのプロパティと関係があります。 このwindoのプロパティを次のように変更した場合:

window.getAttributes()。format = PixelFormat.TRANSLUCENT;

これは、黒い背景が実際に透明であることを意味します。 あなたの質問に関して、私の「推測された推測」は、startAildivityが(おそらくTRANSLUCENTの)異なるプロパティセットを持つウィンドウを作成する一方、startChildActivityは親ウィンドウのウィンドウのプロパティを取ることです。

関連する問題