1. styles文件中新增dialog
<style name="NoWiredStrapInNavigationBar" parent="@style/Theme.AppCompat.Dialog">
<item name="android:windowIsFloating">false</item>
<item name="android:windowFullscreen">true</item>
</style>
说明:windowIsFloating必须配置为false。这样就能让底部导航变成正常的颜色
2. dialogFragment中使用新增style
@Override
public int getTheme() {
return R.style.NoWiredStrapInNavigationBar;
}
3. 其他样式处理
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = getDialog().getWindow();
window.setGravity(setGravity());
window.setLayout((int) getDialogWidth(), ViewGroup.LayoutParams.MATCH_PARENT);
WindowManager.LayoutParams windowParams = window.getAttributes();
windowParams.dimAmount = 0.6f;
window.setAttributes(windowParams);
注意:其中第4句setLayout高度必须设置为ViewGroup.LayoutParams.MATCH_PARENT否则会造成底部弹出的dialog弹跳闪动一下再回到正确位置。
其他
- 如果有深色适配需要手动配置底部导航颜色
window.setNavigationBarColor(ContextCompat.getColor(getContext(),R.color.navigationBarColor));