07.Dialog全屏隐藏状态栏和标题栏
Dialog全屏时隐藏状态栏
用上述方法时,发现设置为全屏时上方一直有状态栏,,,所以我又上网查了一下,总结了之后现在发出来:
新建一个类 继承 Dialog
public class omgDialogP extends Dialog {
public OBDDialogP(@NonNull Context context) {
super(context , R.style.kdialog);
setCancelable(false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
applyCompat();
}
private void applyCompat() {
//隐藏标题栏-需要在setContentView(之前做
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
if (Build.VERSION.SDK_INT < 19) {
return;
}
// 隐藏状态栏不占位
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
隐藏标题栏的Style 文件:
<!--Dialog 样式 四周没有边框 加 全屏时不会有隐藏标题栏-->
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
自定义方法:
private void setPromptWin(omgDialog dia) {
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = dia.getWindow().getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
dia.getWindow().setAttributes(lp);
}
少年与爱永不老去,即便披荆斩棘,丢失怒马鲜衣。