big白菜的个人主页

http://bbs.ntpcb.com/u.php?uid=73326  [收藏] [复制]

big白菜

  • 0

    关注

  • 0

    粉丝

  • 2

    访客

  • 等级:一级逆天
  • 身份:禁止发言
  • 总积分:6
  • 保密,1987-01-01

最后登录:2023-05-25

更多资料

日志

横屏状态,导航栏(navigationBar)无法设置透明

2018-06-21 16:54
[QUESTION]
横屏状态,导航栏(navigationBar)无法设置透明
[ANSWER]
正常情况,用如下代码,可以让窗口上的导航栏透明。
Window window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
但是在手机横屏状态,上述代码无效,状态栏不透明。
这是为什么呢?
原来,在android原生逻辑中,手机横屏状态,禁止导航栏透明。icfans
相关限制的代码在如下位置:
文件 NavigationBarTransitions.java (frameworks\base\packages\systemui\src\com\android\systemui\statusbar\phone):
函数 public void transitionTo(int mode, boolean animate)
代码
public void transitionTo(int mode, boolean animate) {
mRequestedMode = mode;
if (mVertical) {
// translucent mode not allowed when vertical
if (mode == MODE_TRANSLUCENT || mode == MODE_TRANSPARENT) {
mode = MODE_OPAQUE;
} else if (mode == MODE_LIGHTS_OUT_TRANSPARENT) {
mode = MODE_LIGHTS_OUT;
}
} s
uper.transitionTo(mode, animate);
} 代
码注释中明确说明,手机横屏状态(导航栏的状态mVertical为true时),状态栏不允许透明。  

分类:Android开发|回复:0|浏览:675|全站可见|转载
 

Powered by phpwind v8.7.1 Certificate Copyright Time now is:04-20 09:06
©2003-2011 逆天PCB论坛 版权所有 Gzip disabled 粤ICP备14042835号 问题咨询 | 广告业务点这里