Android 彈出Dialog時隱藏狀態(tài)欄和底部導(dǎo)航欄的方法
上代碼
dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
//布局位于狀態(tài)欄下方
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
//全屏
View.SYSTEM_UI_FLAG_FULLSCREEN |
//隱藏導(dǎo)航欄
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
uiOptions |= 0x00001000;
dialog.getWindow().getDecorView().setSystemUiVisibility(uiOptions);
}
});
ps:下面看下Android Dialog彈出時不顯示導(dǎo)航欄(沉浸式)
我們的app是全屏沉浸式的,發(fā)現(xiàn)activity在設(shè)置了全屏后,彈出dialog底部會跳出導(dǎo)航欄虛擬鍵。具體原因是因為Dialog的Window搶走了焦點,Window 中的 DecorView 狀態(tài)改變導(dǎo)致了退出。
解決方法,在Dialog中:
private void fullScreenImmersive(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_FULLSCREEN;
view.setSystemUiVisibility(uiOptions);
}
}
@Override
public void show() {
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
super.show();
fullScreenImmersive(getWindow().getDecorView());
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
}
總結(jié)
以上所述是小編給大家介紹的Android 彈出Dialog時隱藏狀態(tài)欄和底部導(dǎo)航欄的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- Android 中使用RadioGroup和Fragment實現(xiàn)底部導(dǎo)航欄的功能
- 性能分析:指如何快速定位SQL問題
- android中Fragment+RadioButton實現(xiàn)底部導(dǎo)航欄
- Android自定義ViewPagerIndicator實現(xiàn)炫酷導(dǎo)航欄指示器(ViewPager+Fragment)
- Android程序開發(fā)之Fragment實現(xiàn)底部導(dǎo)航欄實例代碼
- Android實現(xiàn)沉浸式通知欄通知欄背景顏色跟隨app導(dǎo)航欄背景顏色而改變
- Android實現(xiàn)底部導(dǎo)航欄功能(選項卡)
- 超簡單的幾行代碼搞定Android底部導(dǎo)航欄功能
- Android 沉浸式狀態(tài)欄與隱藏導(dǎo)航欄實例詳解
- android 全屏去掉底部虛擬導(dǎo)航欄的方法
- 解決android 顯示內(nèi)容被底部導(dǎo)航欄遮擋的問題
- Android仿今日頭條頂部導(dǎo)航欄效果的實例代碼
- Android仿網(wǎng)易客戶端頂部導(dǎo)航欄效果
- Android?Fragment實現(xiàn)頂部、底部導(dǎo)航欄
相關(guān)文章
Android編譯出現(xiàn)Warning:Mapping?new?ns?to?old?ns報錯的解決方案
android在編譯的過程中難免會出現(xiàn)些錯誤,下面這篇文章主要給大家介紹了關(guān)于Android編譯出現(xiàn)Warning:Mapping?new?ns?to?old?ns報錯的解決方案,需要的朋友可以參考下2023-02-02
Android 監(jiān)聽手機GPS打開狀態(tài)實現(xiàn)代碼
這篇文章主要介紹了Android 監(jiān)聽手機GPS打開狀態(tài)實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05
解決android studio 3.0 加載項目過慢問題--maven倉庫選擇
這篇文章主要介紹了android studio 3.0 加載項目過慢問題解決方案---maven倉庫選擇,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11
Android GestureDetector實現(xiàn)手勢滑動效果
這篇文章主要為大家詳細介紹了Android GestureDetector實現(xiàn)手勢滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
Android studio利用gradle打jar包并混淆的方法詳解
昨天準備把寫好的代碼使用gradle打jar包出來,并打算加混淆。打jar包容易,結(jié)果在混淆上走了彎路。所以這篇文章主要介紹了關(guān)于Android studio利用gradle打jar包并混淆的方法,需要的朋友可以參考下。2017-03-03

