Android 控制navigationbar显示隐藏

由于前面的文章已经提供过接口,所以这里就不在赘述了,只提最重要的一步

在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java接收广播

filter.addAction("com.azt.hidebar");
filter.addAction("com.azt.unhidebar");  //IntentFilter加进去


else if (intent.getAction().equals("com.azt.hidebar")) {
    mStatusBarHeight =0;
    mNavigationBarHeightForRotationDefault[mPortraitRotation] =0;
    mNavigationBarHeightForRotationDefault[mUpsideDownRotation] =0;
    mNavigationBarHeightForRotationDefault[mLandscapeRotation] =0;
    mNavigationBarHeightForRotationDefault[mSeascapeRotation] = 0;
    mNavigationBarHeightForRotationInCarMode[mPortraitRotation] =0;
    mNavigationBarHeightForRotationInCarMode[mUpsideDownRotation] =0;
    mNavigationBarHeightForRotationInCarMode[mLandscapeRotation] =0;
    mNavigationBarHeightForRotationInCarMode[mSeascapeRotation] = 0;
} else if (intent.getAction().equals("com.azt.unhidebar")) {//gaodz add
    mStatusBarHeight= mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height);
    mNavigationBarHeightForRotationDefault[mPortraitRotation] =
    mNavigationBarHeightForRotationDefault[mUpsideDownRotation] =
                mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_height);
    mNavigationBarHeightForRotationDefault[mLandscapeRotation] =
    mNavigationBarHeightForRotationDefault[mSeascapeRotation] = mContext.getResources().getDimensionPixelSize(
                com.android.internal.R.dimen.navigation_bar_height_landscape);
}

猜你喜欢

转载自blog.csdn.net/lancelots/article/details/82150077
今日推荐