从对话框片段中防止状态栏外观

时间:2015-08-11 23:19:14

标签: java android android-alertdialog statusbar

我有一个非常标准的Dialog电话。问题是它会调出状态栏,并在单击“确定”时隐藏它。你知道如何在显示对话框时阻止状态栏出现吗?

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    // 2. Chain together various setter methods to set the dialog characteristics

    builder.setMessage("Please fill in the missing blocks in this layout with photos or choose a different layout.")
                                        .setTitle("Missing Photos");

                                // Add the buttons

builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
  {
       public void onClick(DialogInterface dialog, int id)
      {
        hideSystemUI();
      }
  });

     // 3. Get the AlertDialog from create()
     AlertDialog dialog = builder.create();
     dialog.show();

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为您正在以编程方式隐藏标题栏以显示活动和片段,而对话框仍然继承了您为应用设置的主题,并且该主题不会隐藏标题栏。您需要做的就是在styles.xml中为对话框指定一个自定义主题,然后在代码中将对话框主题设置为它。这是一个例子

<style name="CustomDialogTheme" parent="AppTheme"> 
    <item name="android:windowNoTitle">true</item>
</style>    

现在在您的代码中设置对话框中的custome主题,如此

dialog.setStyle( DialogFragment.STYLE_NORMAL, R.style.CustomDialogTheme);