2016-02-10 46 views
5

ステータスバーを隠すのではなく、フルスクリーンのダイアログボックスを作りたいと思います。Androidは全画面表示のステータスバーを表示します

使用スタイルがTheme_Light_NoTitleBar_Fullscreenの場合、ダイアログボックスは画面全体を占有します。

使用スタイルがTheme_Material_Light_NoActionBar_TranslucentDecorの場合は動作しているようですが、実際にダイアログボックスの上部が透明になっています。私は、ステータスバーの高さを問い合わせて、ダイアログレイアウトにトップパッディングを追加することで、改善することができます。このソリューションは、アニメーションを添付しても機能しない点を除いて、うまく動作しているようです。

Googleがダイアログボックスを使いにくくして、なぜここでフルスクリーンのダイアログボックスを作成しようとしているのか、私は非常に混乱していますか?

答えて

2

私はブログからスニペットを見つけましたが、私はTheme_Black_NoTitleBar_FullscreenonCreateの間にスニペットとともにコンストラクタで使用しなければならないことが分かりました。私のダイアログはフルスクリーンでステータスバーが表示されます。

public YourCustomDiag(Activity act){ 
    //step 1, required. to stretch the dialog to full screen 
    super(act, android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.custom_dialog_layout); 
    KeepStatusBar(); 
} 

//step 2, required 
private void KeepStatusBar(){  
    WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
    attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; 
    getWindow().setAttributes(attrs); 
} 

this is the source where i found the snipplet

6

ちょうど私のために働いTHEME_BLACK_NoTitleBar を使用!私のために働いた

+0

。ベストソリューション! – TrueCH

+0

私のために働いた、この答えはさらにupvoteを取得する必要があります。 – Nadimuddin

1

使用android.R.style.Theme_Black_NoTitleBar

AlertDialog.Builder builder = new AlertDialog.Builder(context, 
        android.R.style.Theme_Black_NoTitleBar); 

Example screen

関連する問題