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);
    }
posted @ 2022-04-08 14:43  契阔  阅读(429)  评论(0)    收藏  举报