怎么正确的隐藏navigationbar,并适配不同手机?
高洛峰
高洛峰 2016-10-27 13:18:48
[Java讨论组]

1.先说一下我的需求是,在进入app的splash界面播放一个gif动画来完成欢迎动画的实现。具体实现步骤是将主题设置windowBackground指定一张图片(这张图片即是gif图的第一帧),然后在进入splashactivity后,调用setContentView后,播放gif动画,但是这样实现有一个前提就是,gif图的位置必须和windowBackground设置的图的位置完全重合才行,这样看起来是一个完整的动画。

那么问题来了,经测试,在htc、华为等部分手机出现图片不重合的情况,研究发现是navigationbar的原因导致spalsh界面的布局受到影响。最后通过设置如下代码解决了在nexus5上不重合问题,代码如下:

View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE;
  decorView.setSystemUiVisibility(uiOptions);

上面这段代码的意思是,不让navigationbar影响原来的布局。但是这样会导致在htc、华为等部分手机上出现不重合问题(估计这些手机系统已经排除navigationbar的高度,也就是说不让navigationbar的高度参与布局)。而如果不设置以上代码,又会在nexus5上出现不重合问题。那么我该怎么判断系统是否已经排除了navigationbar高度呢?有人遇到过这个问题吗?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
三叔

为什么不设置一个imageview?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号