隱藏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>
如圖