【问题标题】:Dialog - It changes status bar color对话框 - 它更改状态栏颜色
【发布时间】:2018-10-05 12:46:45
【问题描述】:

我正在尝试创建并显示一个全屏对话框。我想使用这个自定义对话框布局创建一些动画。此代码适用于片段而不是活动。

我的代码如下:

            Dialog dialog = new Dialog(getContext());
            LinearLayout linearLayout = new LinearLayout(getContext());
            linearLayout.setLayoutParams(new LinearLayout.LayoutParams(-1, -1));
            linearLayout.setBackgroundColor(Color.TRANSPARENT);

            dialog.requestWindowFeature(1);
            dialog.setContentView(linearLayout);
            Window dialogWindow = dialog.getWindow();
            dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            dialogWindow.setDimAmount(0.0f);
            dialogWindow.setBackgroundDrawableResource(android.R.color.transparent);
            // View.WindowManager.LayoutParams.MATCH_PARENT
            dialogWindow.setLayout(-1, -1);

            dialog.show();

截图如下:

在 dialog.show 状态栏颜色改变之后。

R.style.Theme_AppCompat_Light 对我不起作用。它将状态栏更改为浅灰色:)

如何显示完全透明的自定义对话框?

【问题讨论】:

  • 测试用例删除dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  • 并使用这个dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
  • @NileshRathod 这个设置是不够的。我使用 Theme_Holo_Light_NoActionBar_Fullscreen 主题,但它会删除状态栏中的图标。 ://

标签: android android-fragments android-theme android-dialog android-statusbar


【解决方案1】:
    Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCanceledOnTouchOutside(false);
    dialog.setContentView(layout_file);
    dialog.getWindow().setLayout(AppBarLayout.LayoutParams.FILL_PARENT, AppBarLayout.LayoutParams.WRAP_CONTENT);

【讨论】:

  • 我想使用全屏对话框。但事实并非如此。
  • 使用RelativeLayout并修改我的代码的最后一行如下-- dialog.getWindow().setLayout(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
猜你喜欢
  • 1970-01-01
  • 2016-10-25
  • 2017-05-19
  • 2015-05-09
  • 2015-09-26
  • 2016-11-04
  • 2017-02-02
  • 2021-11-05
  • 2018-08-27
相关资源
最近更新 更多