亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Android導航欄功能項的顯示與屏蔽

發布時間:2021-12-22 12:47:15 來源:億速云 閱讀:248 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關如何實現Android導航欄功能項的顯示與屏蔽的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

代碼源路徑: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的顯示順序 .

提一嘴,如果需要用到屏蔽狀態欄以及任務欄,可以將如下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導航欄功能項的顯示與屏蔽”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏东市| 安远县| 永胜县| 克山县| 兴安盟| 汶川县| 深州市| 尉氏县| 乐亭县| 鹤岗市| 金门县| 开江县| 富蕴县| 商都县| 睢宁县| 濮阳县| 石门县| 大英县| 洪湖市| 红原县| 丰顺县| 黄冈市| 山东省| 铁岭市| 如皋市| 四子王旗| 永年县| 抚宁县| 洛扎县| 什邡市| 宝丰县| 信阳市| 哈尔滨市| 两当县| 通许县| 澜沧| 淅川县| 宁蒗| 浦东新区| 桓仁| 云霄县|