Android 5.0以后 點擊NotificationPanelView中的按鈕就收縮狀態欄


frameworks\base\packages\SystemUI\src\com\android\systemui\qs\QSTile.java

類分析,位置信息、飛行模式、手電筒、藍牙等按鈕的點擊都會通過此類的handleClick()抽象方法。

abstract protected void handleClick();

 

那么解決問題也很簡單,針對不同的按鈕的點擊事件添加handleClick()即可,如果統一處理請自行找辦法。

比如位置信息按鈕:

frameworks\base\packages\SystemUI\src\com\android\systemui\qs\tiles\LocationTile.java

直接在handleClick()方法尾部添加:

@Override
protected void handleClick() {
    final boolean wasEnabled = (Boolean) mState.value;
    MetricsLogger.action(mContext, getMetricsCategory(), !wasEnabled);
    mController.setLocationEnabled(!wasEnabled);
    mEnable.setAllowAnimation(true);
    mDisable.setAllowAnimation(true);
    
    if(!wasEnabled){   //添加內容
        ((StatusBarManager) mContext.getSystemService(Context.STATUS_BAR_SERVICE)).collapsePanels();
    }
}  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM