日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

android 系统状态栏的隐藏和显示

發布時間:2024/4/15 windows 79 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 系统状态栏的隐藏和显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天,簡單講講android如何控制 

系統狀態欄的隱藏和顯示。


昨天遇到這個問題,找了好久資料才解決,這里記錄一下。


網上流傳著很多種做法。比如:
1、在AndroidManifest.xml文件中修改theme為android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”
2、在setContentView方法前執行如下代碼:

requestWindowFeature(Window.FEATURE_NO_TITLE)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

3、通過View的setSystemUiVisibility方法
4、通過如下代碼實現狀態欄的隱藏和顯示:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隱藏狀態欄
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //顯示狀態欄


方法1、2只能消除狀態欄,不能顯示狀態欄。

方法3,我采用過,調用setSystemUiVisibility方法,該方法傳入的參數可以為:

  • View.SYSTEM_UI_FLAG_VISIBLE:顯示狀態欄,Activity不全屏顯示(恢復到有狀態的正常情況)。
  • View.INVISIBLE:隱藏狀態欄,同時Activity會伸展全屏顯示。
  • View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏顯示,且狀態欄被隱藏覆蓋掉。
  • View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏顯示,但狀態欄不會被隱藏覆蓋,狀態欄依然可見,Activity頂端布局部分會被狀態遮住。
  • View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  • View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  • View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隱藏虛擬按鍵(導航欄)。有些手機會用虛擬按鍵來代替物理按鍵。
  • View.SYSTEM_UI_FLAG_LOW_PROFILE:狀態欄顯示處于低能顯示狀態(low profile模式),狀態欄上一些圖標顯示會被隱藏。
  • 這里我需要傳入的是View.SYSTEM_UI_FLAG_FULLSCREEN,可是當我傳入該參數后,結果是:只是狀態欄消失了,但是位置還在。(測試手機:華為榮耀8 系統是基于Android 7.0的EMUI 5.0;三星galaxy s6 系統是Android 6.0)


    最終,只有方法4可以正常使用。


    下面記錄一下步驟:

    1.顯示與隱藏狀態欄的代碼如下:

    private void fullscreen(boolean enable) {

    ? ? ? ? if (enable) { //顯示狀態欄

    ? ? ? ? ? ? WindowManager.LayoutParams lp = getWindow().getAttributes();

    ? ? ? ? ? ? lp.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;

    ? ? ? ? ? ? getWindow().setAttributes(lp);

    ? ? ? ? ? ? getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    ? ? ? ? } else { //隱藏狀態欄

    ? ? ? ? ? ? WindowManager.LayoutParams lp = getWindow().getAttributes();

    ? ? ? ? ? ? lp.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);

    ? ? ? ? ? ? getWindow().setAttributes(lp);

    ? ? ? ? ? ? getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    ? ? ? ? }

    ? ? }


    2.示與隱藏的效果如下:

    步驟閱讀



    3.橫屏與豎屏切換時處理狀態欄的顯示與隱藏,所以需要配置屏幕切換代碼。

    AndroidManifest.xml中activity上配置

    android:configChanges="orientation|keyboardHidden|screenSize"



    4.activity中override方法onConfigurationChanged

    @Override

    public void onConfigurationChanged(Configuration newConfig) {

    super.onConfigurationChanged(newConfig);

    ? ?if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE ){//橫屏

    ? ?

    ? ?}else if( this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT ){//豎屏

    ? ?

    ? ?}

    }



    注意事項

    • AndroidManifest.xml中activity配置android:configChanges="orientation|keyboardHidden|screenSize"
    • override方法onConfigurationChanged


    android 系統狀態欄的隱藏和顯示就講完了。


    就這么簡單。

    總結

    以上是生活随笔為你收集整理的android 系统状态栏的隐藏和显示的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。