動(dòng)態(tài)顯示和隱藏狀態(tài)欄及修改狀態(tài)欄顏色

setSystemUiVisibility(int visibility)方法可傳入的實(shí)參為:
1. View.SYSTEM_UI_FLAG_VISIBLE:顯示狀態(tài)欄,Activity不全屏顯示(恢復(fù)到有狀態(tài)的正常情況)。
2. View.INVISIBLE:隱藏狀態(tài)欄,同時(shí)Activity會(huì)伸展全屏顯示。
3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏顯示,且狀態(tài)欄被隱藏覆蓋掉。
4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏顯示,但狀態(tài)欄不會(huì)被隱藏覆蓋,狀態(tài)欄依然可見(jiàn),Activity頂端布局部分會(huì)被狀態(tài)遮住。
5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隱藏虛擬按鍵(導(dǎo)航欄)。有些手機(jī)會(huì)用虛擬按鍵來(lái)代替物理按鍵。
8. View.SYSTEM_UI_FLAG_LOW_PROFILE:狀態(tài)欄顯示處于低能顯示狀態(tài)(low profile模式),狀態(tài)欄上一些圖標(biāo)顯示會(huì)被隱藏。

下面將以一個(gè)demo來(lái)驗(yàn)證view的setSystemUiVisibility(int visibility)方法實(shí)現(xiàn)動(dòng)態(tài)操作狀態(tài)欄:

public class MainActivity extends Activity implements OnClickListener
{

    private RelativeLayout mRLayout;
    private Button mBtn1, mBtn2, mBtn3, mBtn4, mBtn5, mBtn6, mBtn7, mBtn8;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mRLayout = (RelativeLayout)findViewById(R.id.content);
        mBtn1 = (Button)findViewById(R.id.btn1);
        mBtn2 = (Button)findViewById(R.id.btn2);
        mBtn3 = (Button)findViewById(R.id.btn3);
        mBtn4 = (Button)findViewById(R.id.btn4);
        mBtn5 = (Button)findViewById(R.id.btn5);
        mBtn6 = (Button)findViewById(R.id.btn6);
        mBtn7 = (Button)findViewById(R.id.btn7);
        mBtn8 = (Button)findViewById(R.id.btn8);
        
        mBtn1.setOnClickListener(this);
        mBtn2.setOnClickListener(this);
        mBtn3.setOnClickListener(this);
        mBtn4.setOnClickListener(this);
        mBtn5.setOnClickListener(this);
        mBtn6.setOnClickListener(this);
        mBtn7.setOnClickListener(this);
        mBtn8.setOnClickListener(this);     
    }
    
    @Override
    public void onClick(View v)
    {
        // TODO Auto-generated method stub
        switch (v.getId()) 
        {
        case R.id.btn1:
            //顯示狀態(tài)欄,Activity不全屏顯示(恢復(fù)到有狀態(tài)的正常情況)
            mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);    
            break;
        case R.id.btn2:
            //隱藏狀態(tài)欄,同時(shí)Activity會(huì)伸展全屏顯示
            mRLayout.setSystemUiVisibility(View.INVISIBLE);
            break;
        case R.id.btn3:
            //Activity全屏顯示,且狀態(tài)欄被隱藏覆蓋掉。
               mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
            break;      
        case R.id.btn4:
            //Activity全屏顯示,但狀態(tài)欄不會(huì)被隱藏覆蓋,狀態(tài)欄依然可見(jiàn),Activity頂端布局部分會(huì)被狀態(tài)遮住
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
            break;
        case R.id.btn5:
                       //同   View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
            break;
               case R.id.btn6:
                    //同 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            mRLayout.setSystemUiVisibility(View.SYSTEM_UI_LAYOUT_FLAGS);
            break;
        case R.id.btn7:
            //隱藏虛擬按鍵(導(dǎo)航欄)
     mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
            break;
        case R.id.btn8:
     //狀態(tài)欄顯示處于低能顯示狀態(tài)(low profile模式),狀態(tài)欄上一些圖標(biāo)顯示會(huì)被隱藏。
      mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
            break;
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容