我有带有黑色导航栏的夜间主题,样式为 App Theme 参数
<item name="android:navigationBarColor">@color/color_navbar</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">false</item>
但是当我显示 DialogFragment 时,导航栏颜色变为白色。它在晚上严重打击眼睛。
我尝试设置 dialogfragment 样式,但对我没有帮助:
public void onCreate(Bundle savedInstanceState) {
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Theme_AppCompat_DayNight_Dialog);
super.onCreate(savedInstanceState);
}
结果是白色的:
我的基本应用风格是
Theme.MaterialComponents.DayNight.NoActionBar
我在android Q上测试它。那么在对话框 fragment 上自定义导航栏颜色的方法是什么?或者,如果有办法在显示对话框 fragment 时不更改导航栏颜色并使用显示此对话框的 Activity 的颜色,则更好。
最佳答案
这对我有用:
window?.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window?.navigationBarColor = ContextCompat.getColor(activity, R.color.navigation_bar_color)
在设置 navigationBarColor 之前,您需要添加标志。 FLAG_DRAW_SYSTEM_BAR_BACKGROUNDS,关于android - 为 DialogFragment 上的导航栏设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62012035/