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

Android導(dǎo)航欄功能項(xiàng)的顯示與屏蔽介紹

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

?Android 的導(dǎo)航欄有諸多功能,例入 截屏,音量加,音量減,最近任務(wù),菜單.返回,主頁面,輸入法開關(guān)?。?/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 即在此類中完成對(duì) Button圖標(biāo) 的選擇 .?

若需要展示/隱藏對(duì)應(yīng)的 功能選項(xiàng)時(shí),需要在此處修改:

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);
        }
    }

可以將對(duì)應(yīng)的Button 設(shè)置 setVisibility(View.GONE / View.INVISIBLE / View.VISIBLE);?

?當(dāng)加上setVisibility時(shí),UI界面還沒顯示時(shí),需要注意config.xml中是否有寫進(jìn)去需要的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)欄以及任務(wù)欄,可以將如下status_bar_height 的高度設(shè)為0.

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

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

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

相關(guān)文章

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

    Android 使用Retrofit 以純二進(jìn)制文件流上傳文件的操作代碼

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

    Android中的設(shè)計(jì)模式

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

    flutter 實(shí)現(xiàn)點(diǎn)擊下拉欄微信右上角彈出窗功能

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

    Android編程判斷應(yīng)用程序是否已安裝的方法

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

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

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

    Android即時(shí)通訊設(shè)計(jì)(騰訊IM接入和WebSocket接入)

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

    Android中ViewPager的PagerTabStrip與PagerTitleStrip用法實(shí)例

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

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

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

    Kotlin與Java相互調(diào)用的完整實(shí)例

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

    Android仿QQ長(zhǎng)按彈出刪除復(fù)制框

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

最新評(píng)論

布尔津县| 克东县| 沭阳县| 宜宾县| 兴宁市| 法库县| 神农架林区| 涡阳县| 涡阳县| 乌兰浩特市| 车险| 甘泉县| 安国市| 迁安市| 田阳县| 乌兰浩特市| 五大连池市| 朝阳区| 榆树市| 淮滨县| 昭平县| 淮南市| 扬州市| 邢台县| 大新县| 绥棱县| 正镶白旗| 双桥区| 广汉市| 崇文区| 南宁市| 天等县| 合川市| 怀集县| 隆安县| 津南区| 渝中区| 海林市| 宁强县| 新化县| 安图县|