Android開發實現透明通知欄

來源:互聯網
上載者:User

標籤:

這個特性是andorid4.4支援的,最少要api19才可以使用,也就是說如果Android的機子是低於4.4,沉浸通知欄是沒有效果的。下面介紹一下使用的方法,非常得簡單。

 /**
     * 設定通知欄 這個方法在onCreate()實現,如果是在父類的onCreate()中添加,即使所有繼承了該父類都會有沉浸通知欄。
     */

public void initSystemBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            setTranslucentStatus(true);
            SystemBarTintManager tintManager = new SystemBarTintManager(this);
            tintManager.setStatusBarTintEnabled(true);
            tintManager.setStatusBarTintResource(R.color.red);
        }
    }
    
    /**
     * 設定通知欄的狀態
     * @param on
     */
    @SuppressLint("InlinedApi")
    private void setTranslucentStatus(boolean on) {  
        Window win = this.getWindow();  
        WindowManager.LayoutParams winParams = win.getAttributes();  
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;  
        if (on) {  
            winParams.flags |= bits;  
        } else {  
            winParams.flags &= ~bits;  
        }  
        win.setAttributes(winParams);  
    }

在最後在布局檔案中添加:android:fitsSystemWindows="true"

即可實現。

Android開發實現透明通知欄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.