最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android導航欄功能項的顯示與屏蔽介紹

 更新時間:2021年12月22日 11:15:12   作者:Android 入門小白  
大家好,本篇文章主要講的是Android導航欄功能項的顯示與屏蔽介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

?Android 的導航欄有諸多功能,例入 截屏,音量加,音量減,最近任務,菜單.返回,主頁面,輸入法開關?。?/strong>

代碼源路徑:frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java

    public ButtonDispatcher getScreenshotButton() {
        return mButtonDispatchers.get(R.id.screenshot);
    }
 
    public ButtonDispatcher getVolumeAddButton() {
        return mButtonDispatchers.get(R.id.volume_add);
    }
 
    public ButtonDispatcher getVolumeSubButton() {
        return mButtonDispatchers.get(R.id.volume_sub);
    }
 
    public ButtonDispatcher getRecentsButton() {
        return mButtonDispatchers.get(R.id.recent_apps);
    }
 
    public ButtonDispatcher getMenuButton() {
        return mButtonDispatchers.get(R.id.menu);
    }
 
    public ButtonDispatcher getBackButton() {
        return mButtonDispatchers.get(R.id.back);
    }
 
    public ButtonDispatcher getHomeButton() {
        return mButtonDispatchers.get(R.id.home);
    }
 
    public ButtonDispatcher getImeSwitchButton() {
        return mButtonDispatchers.get(R.id.ime_switcher);
    }
 
    public ButtonDispatcher getAccessibilityButton() {
        return mButtonDispatchers.get(R.id.accessibility_button);
    }

Android 即在此類中完成對 Button圖標 的選擇 .?

若需要展示/隱藏對應的 功能選項時,需要在此處修改:

private void prepareNavigationBarView() {
        mNavigationBarView.reorient();
 
        ButtonDispatcher recentsButton = mNavigationBarView.getRecentsButton();
        recentsButton.setOnClickListener(this::onRecentsClick);
        recentsButton.setOnTouchListener(this::onRecentsTouch);
        recentsButton.setLongClickable(true);
        recentsButton.setOnLongClickListener(this::onLongPressBackRecents);
 
        ButtonDispatcher backButton = mNavigationBarView.getBackButton();
        backButton.setLongClickable(true);
        backButton.setOnLongClickListener(this::onLongPressBackRecents);
 
        ButtonDispatcher homeButton = mNavigationBarView.getHomeButton();
        homeButton.setOnTouchListener(this::onHomeTouch);
        homeButton.setOnLongClickListener(this::onHomeLongClick);
 
        ButtonDispatcher accessibilityButton =         mNavigationBarView.getAccessibilityButton();
        accessibilityButton.setOnClickListener(this::onAccessibilityClick);
        accessibilityButton.setOnLongClickListener(this::onAccessibilityLongClick);
        updateAccessibilityServicesState(mAccessibilityManager);
 
        ButtonDispatcher screenshotButton = mNavigationBarView.getScreenshotButton();
        screenshotButton.setOnClickListener(this:: screenshotClick);
        screenshotButton.setOnTouchListener(this:: screenshotTouch);
        boolean isShow=Settings.System.getInt(getContext().getContentResolver(), Settings.System.SCREENSHOT_BUTTON_SHOW, 1) == 1;
        if(isShow){
            screenshotButton.setVisibility(View.VISIBLE);
        }else{
            screenshotButton.setVisibility(View.GONE);
        }
 
        ButtonDispatcher volumeAddButton=mNavigationBarView.getVolumeAddButton();
        ButtonDispatcher volumeSubButton=mNavigationBarView.getVolumeSubButton();
        boolean isShowVolumeButton="true".equals(SystemProperties.get("ro.rk.systembar.voiceicon","true"));
        if(isShowVolumeButton){
            volumeAddButton.setVisibility(View.VISIBLE);
            volumeSubButton.setVisibility(View.VISIBLE);
        }else{
            volumeAddButton.setVisibility(View.GONE);
            volumeSubButton.setVisibility(View.GONE);
        }
        if (getContext().getResources().getConfiguration().smallestScreenWidthDp < 400) {
            volumeAddButton.setVisibility(View.GONE);
            volumeSubButton.setVisibility(View.GONE);
        }
    }

可以將對應的Button 設置 setVisibility(View.GONE / View.INVISIBLE / View.VISIBLE);?

?當加上setVisibility時,UI界面還沒顯示時,需要注意config.xml中是否有寫進去需要的Button .?

frameworks\base\packages\SystemUI\res\values\config.xml

<string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add;right</string>

需要注意的是,config中配置的順序 即為 UI的顯示順序 .

提一嘴,如果需要用到屏蔽狀態(tài)欄以及任務欄,可以將如下status_bar_height 的高度設為0.

?frameworks\base\core\res\res\values\dimens.xml

    <!-- Height of the status bar -->
    <dimen name="status_bar_height">0dp</dimen>

到此這篇關于Android導航欄功能項的顯示與屏蔽介紹的文章就介紹到這了,更多相關Android導航欄內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Android 使用Retrofit 以純二進制文件流上傳文件的操作代碼

    Android 使用Retrofit 以純二進制文件流上傳文件的操作代碼

    文章介紹了如何在Android項目中使用Retrofit通過純二進制文件流上傳文件,包括單個文件流上傳和大文件分段上傳的方法,并詳細描述了需求協(xié)議、接口定義、RequestInterceptor的使用以及相關庫的調用,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Android中的設計模式

    Android中的設計模式

    常用的設計模式有以下八種:單例、工廠、觀察者、代理、命令、適配器、合成、訪問者。下面通過本文給大家介紹下android中的設計模式,感興趣的朋友一起看看吧
    2016-09-09
  • flutter 實現點擊下拉欄微信右上角彈出窗功能

    flutter 實現點擊下拉欄微信右上角彈出窗功能

    這篇文章主要介紹了flutter 實現彈出窗點擊下拉欄微信右上角彈出窗功能,這段代碼使用的是PopupRoute這個路由類進行實現 的,分步驟通過實例代碼講解的非常詳細,需要的朋友可以參考下
    2021-05-05
  • Android編程判斷應用程序是否已安裝的方法

    Android編程判斷應用程序是否已安裝的方法

    這篇文章主要介紹了Android編程判斷應用程序是否已安裝的方法,實例分析了Android基于PackageInfo判斷應用程序信息的相關技巧,需要的朋友可以參考下
    2016-02-02
  • Android AndBase框架使用封裝好的函數完成Http請求(三)

    Android AndBase框架使用封裝好的函數完成Http請求(三)

    這篇文章主要介紹了Android AndBase框架使用封裝好的函數完成Http請求的相關資料,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android即時通訊設計(騰訊IM接入和WebSocket接入)

    Android即時通訊設計(騰訊IM接入和WebSocket接入)

    本文主要介紹了Android即時通訊設計(騰訊IM接入和WebSocket接入),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Android中ViewPager的PagerTabStrip與PagerTitleStrip用法實例

    Android中ViewPager的PagerTabStrip與PagerTitleStrip用法實例

    這篇文章主要介紹了Android中ViewPager的PagerTabStrip與PagerTitleStrip用法實例,這兩個子控件一般被用作添加標題,在實際效果上并不是那么好控制,使用的時候需要謹慎,需要的朋友可以參考下
    2016-06-06
  • 通知監(jiān)控NotificationListenerService onNotificationPosted重復回調問題

    通知監(jiān)控NotificationListenerService onNotificationPosted重復回

    這篇文章主要為大家介紹了通知監(jiān)控NotificationListenerService onNotificationPosted重復回調問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Kotlin與Java相互調用的完整實例

    Kotlin與Java相互調用的完整實例

    Kotlin的設計過程中就考慮到了與Java的互操作性,在Kotlin中可以直接調用既有的Java代碼,反過來在Java中也可以很流暢地使用Kotlin代碼,這篇文章主要給大家介紹了關于Kotlin與Java相互調用的相關資料,需要的朋友可以參考下
    2021-12-12
  • Android仿QQ長按彈出刪除復制框

    Android仿QQ長按彈出刪除復制框

    這篇文章主要為大家詳細介紹了Android仿QQ長按彈出刪除、復制、轉發(fā)框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評論

蒲城县| 随州市| 赫章县| 丰顺县| 高尔夫| 南部县| 大余县| 津南区| 闽侯县| 吕梁市| 江城| 桐梓县| 卢湾区| 东明县| 榆林市| 手机| 东乌珠穆沁旗| 平遥县| 上饶市| 阿合奇县| 宜丰县| 顺昌县| 台前县| 寻甸| 盐津县| 陆川县| 南岸区| 东莞市| 桃园市| 神农架林区| 那曲县| 庆云县| 长沙县| 临西县| 城市| 莫力| 西贡区| 府谷县| 漳平市| 从江县| 广宁县|