Android 狀態欄隱藏問題

轉載請註明地址:  http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-115185-XsUMM5H1LCzIubq12aQ6-passport.csdn.net  謝謝!


     對於動態顯示和隱藏狀態欄,寫Demo中可能很容易就實現了,但是在項目中就不一定了,因爲牽扯的方面可能太多了,下面說說我踩的那些坑:

1,必須保證當前ac繼承的ac沒有問題,有人說不要使用AppCompatAc,但我試了下是沒有問題的,還有就是你要保證你繼承的ac裏面沒有做一個全屏什麼的判斷,具體自己看吧(lz就是在這裏被坑的........)

2,在Android 4.1 之後,View有方法setSystemUiVisiability(params)可以設置狀態欄的顯示隱藏,但是使用這個方法有一個bug就是當你手動把狀態欄觸摸下來後,它是會一直顯示的咯,就是你的隱藏失效了.至於params請自行百度哈,很多博客都有詳細描敘,具體代碼如下:

public void onClick(View view) {
        switch (view.getId()) {
            case  R.id.bt1:
                bt1.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
                break;
            case  R.id.bt2:
                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
                break;
        }
    }

3,設置窗口來隱藏狀態欄,使用這個的好處就是當你手動觸摸屏幕把狀態欄顯示出來後,大約兩秒狀態欄還是會自動隱藏起來,完美解決上面那方法的不足之處,具體代碼如下:

//隱藏狀態欄
                activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                       WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 顯示狀態欄
                activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);


我在項目中的應用是視頻播放全屏的時候隱藏狀態欄,普通情況下顯示狀態欄,在視頻播放切換全屏的方法中做當前ac方向判斷,如果切換橫屏就隱藏狀態欄,切換豎屏就顯示狀態欄,完美解決!以上就是我總結的一點心得,希望對你有所幫助



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章