其他分享
首页 > 其他分享> > 进度对话框的Android 4.4全屏模式

进度对话框的Android 4.4全屏模式

作者:互联网

我希望我的应用在运行Android 4.4的设备上以全屏模式运行.

我已经设置了View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |我的视图为View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,它在全屏模式下运行.

问题是当我显示一个ProgressDialog时.然后,该应用程序退出全屏模式,并且底部的导航按钮再次可见.

显示进度对话框时,应用程序能否保持全屏模式?

解决方法:

我在此主题上找到了一些解决方法:How to maintain the Immersive Mode in Dialogs?感谢Beaver6813的回答(这是GitHub上的示例代码项目).

因此,基本上,我在ProgressDialog上使用此解决方案的目的是:

>将两个变量添加到我的MainActivity类中:

private ProgressDialog pDialog;    
private Activity context;

>在我的onCreate方法中添加以下代码:

context = this;    
getWindow().getDecorView().setSystemUiVisibility(    
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE    
    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION    
    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN    
    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar   
    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar    
    | View.SYSTEM_UI_FLAG_IMMERSIVE);

>在启动ProgressDialog方法的位置添加以下代码:

pDialog = new ProgressDialog(context);    
pDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);    
pDialog.show();    
pDialog.getWindow().getDecorView().setSystemUiVisibility(
    context.getWindow().getDecorView().getSystemUiVisibility());    
pDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);    

这应该够了吧!

标签:android-4-4-kitkat,android-progressbar,android
来源: https://codeday.me/bug/20191122/2059766.html