Android7.1在setting界面无法全屏

yhm2046 中级 2019-09-12 04:05:11
我司需要修改一个功能:通过发广播实现动态隐藏/显示状态栏和导航栏的功能。现在发现在setting界面隐藏状态栏时候顶部有一块黑色的不能隐藏,我使用eclipse查看布局发现是 android:id/statusBarBackground 这id,包名是com.android.settings,类名是android.view.View,这个在Settings和SystemUI类里面都没有找到,请问该如何修改?现在发现在闹钟界面也有这个问题,应该不是在Setting或者SystemUI修改,请问有何解决办法?


static final String TAG_SHOW="1";
static final String TAG_HIDE="0";
private static final String INTENT_BAR_ACTION_SHOW="bcd.intent.action.BAR_SHOW";
private static final String INTENT_BAR_ACTION_HIDE="bcd.intent.action.BAR_HIDE";

。。。

private void removeNavigationBar() {
if (DEBUG)
Log.i("wangp", "=========removeNavigationBar===== " + mNavigationBarView);
if (mNavigationBarView == null)
return;
if (mNavigationBarView != null){
mWindowManager.removeViewImmediate(mNavigationBarView);
mNavigationBarView = null;
}
}
private BroadcastReceiver mShowOrHideStatusBarReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (DEBUG)
Log.v(TAG, "onReceive: " + intent);
String action = intent.getAction();
if (INTENT_BAR_ACTION_SHOW.equals(action)) {
// flagShow=true;
Settings.System.putInt(mContext.getContentResolver(),
"show_statusbar", 1);
//show
mStatusBarWindow.setVisibility(View.VISIBLE);
mStatusBarView.setVisibility(View.VISIBLE);
inflateNavigationBarView(context);
addNavigationBar();
} else if (INTENT_BAR_ACTION_HIDE.equals(action)) {
// flagShow=false;
Settings.System.putInt(mContext.getContentResolver(),
"show_statusbar", 0);
//hide
mStatusBarWindow.setVisibility(View.GONE);
mStatusBarView.setVisibility(View.GONE);
removeNavigationBar();
}
}
};

。。。



...全文
320 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhm2046 中级 2019-09-26
  • 打赏
  • 举报
回复
引用 4 楼 王能 的回复:
每个属性都有对应的代码设置的,你确定没效果,我以前测试通过的
我用自己的5.1手机是有效果的,但是公司的7.1系统上面试验了没有反应,请问能留个联系方式吗?
王能 2019-09-24
  • 打赏
  • 举报
回复
每个属性都有对应的代码设置的,你确定没效果,我以前测试通过的
王能 2019-09-20
  • 打赏
  • 举报
回复
引用 1 楼 王能 的回复:
在Android5.0以上就不需要代码乱搞了,下面自己选吧 全屏,状态栏和导航栏半透明(api>19) <item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> 全屏,状态栏和导航栏全透明(api>21) <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/w_c_0000</item> <item name="android:navigationBarColor">@color/w_c_0000</item> getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
写在theme里面的
王能 2019-09-20
  • 打赏
  • 举报
回复
在Android5.0以上就不需要代码乱搞了,下面自己选吧 全屏,状态栏和导航栏半透明(api>19) <item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> 全屏,状态栏和导航栏全透明(api>21) <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/w_c_0000</item> <item name="android:navigationBarColor">@color/w_c_0000</item> getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
yhm2046 中级 2019-09-20
  • 打赏
  • 举报
回复
引用 2 楼 王能 的回复:
[quote=引用 1 楼 王能 的回复:] 在Android5.0以上就不需要代码乱搞了,下面自己选吧 全屏,状态栏和导航栏半透明(api>19) <item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> 全屏,状态栏和导航栏全透明(api>21) <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/w_c_0000</item> <item name="android:navigationBarColor">@color/w_c_0000</item> getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
写在theme里面的[/quote] 哥们谢了,不过我是需要做动态的隐藏/显示,你这方法我试了没效果

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧