a20隱藏底部按鈕及隱藏狀態欄和虛擬按鍵欄

隱藏RecentButton按鈕:java

在源碼android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java的makeStatusBarView()方法中添加(這是全志android4.2.2版本(SDK1.3)的路徑)android

{Z:\A20_V3.0.1\android\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java這是全志android4.2.2版本(SDK3.0)的路徑}app

mRecentButton.setVisibility(View.GONE); ui

代碼位置(makeStatusBarView()方法中):spa

        // The navigation buttons
        mBackButton = (ImageView)sb.findViewById(R.id.back);
        mNavigationArea = (ViewGroup) sb.findViewById(R.id.navigationArea);
        mHomeButton = mNavigationArea.findViewById(R.id.home);
        mMenuButton = mNavigationArea.findViewById(R.id.menu);
        mVolumeDownButton = mNavigationArea.findViewById(R.id.volume_down);
        mVolumeUpButton = mNavigationArea.findViewById(R.id.volume_up);
        mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);
        mRecentButton.setOnClickListener(mOnClickListener);
                mRecentButton.setVisibility(View.GONE);//wangjian
        
        mScreenShotButton = mNavigationArea.findViewById(R.id.screenshot);
        mScreenShotButton.setOnClickListener(mOnClickListener);
        
        LayoutTransition lt = new LayoutTransition();
        lt.setDuration(250);xml

我沒有驗證留下一下代碼的可行性,爲了保險我屏蔽了setNavigationVisibility(int visibility)方法中的ip

mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE); get

這段代碼,位置以下(橘色部分):源碼


    private void setNavigationVisibility(int visibility) {
        boolean disableHome = ((visibility & StatusBarManager.DISABLE_HOME) != 0);
        boolean disableRecent = ((visibility & StatusBarManager.DISABLE_RECENT) != 0);
        boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0);

        
        boolean disableVolumeUp = (visibility != 0);
        boolean disableVolumeDown = (visibility != 0);
        
        mBackButton.setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
        mHomeButton.setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE);
        //mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);


        
        if(mContext.getResources().getBoolean(R.bool.hasVolumeButton))
        {
            mVolumeUpButton.setVisibility(disableVolumeUp ? View.INVISIBLE : View.VISIBLE);
            mVolumeDownButton.setVisibility(disableVolumeDown ? View.INVISIBLE : View.VISIBLE);
        }it

這樣就可隱藏RecentButton,隱藏MenuButton,screenshot按鈕方法以下:

在源碼android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java中

將全部         menu.setVisibility(View.VISIBLE);
                screenshot.setVisibility(View.VISIBLE);兩個設置改成

                menu.setVisibility(View.GONE);
                screenshot.setVisibility(View.GONE);

這個方法比較蠢,但管用!能夠試試!

若是要完全隱藏狀態欄和底部虛擬按鍵能夠在

android\frameworks\base\core\res\res\values\dimens.xml中將status_bar_height、navigation_bar_height、navigation_bar_height_landscape這三個值改成0便可,以下:

    <dimen name="status_bar_height">0dip</dimen>

    <!-- Height of the bottom navigation / system bar. -->

    <dimen name="navigation_bar_height">0dp</dimen>

    <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height -->

    <dimen name="navigation_bar_height_landscape">0dp</dimen>

如圖

相關文章
相關標籤/搜索