App第一次进入的提示层适配问题

对于提示层,用dialog,popupwindow,甚至fragment ,或者activity其实都是可以实现的,大部分都是展示几张图片,可能里面涉及一些自身的逻辑而已,这些都是简单的。
简单的说一下dialog的,我就是用dialog写的提示层。
<code>
Window dialogWindow = this.getWindow();
//dialog默认样式是有padding值的
assert dialogWindow != null;
View decorView = dialogWindow.getDecorView();
if (decorView != null) {
decorView.setPadding(0, 0, 0, 0);
}
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
lp.width = MATCH_PARENT; // 宽度
lp.height = MATCH_PARENT; // 高度
dialogWindow.setAttributes(lp);

</code>

再设置一下样式 构造方法那边设置下
<code>
public MainHintDialog(Context context, int isFirstHint, boolean isHasMap) {
super(context, R.style.DialogTheme);
}
</code>

<code>
<style name="DialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowIsFloating">true</item>

<item name="android:windowFrame">@null</item>

<item name="android:windowNoTitle">true</item>

<item name="android:windowBackground">@color/transparent</item>

<item name="android:backgroundDimEnabled">true</item>

</style>

</code>

上述代码设置一下,基本上大部分机型都没问题了 ,但是适配就差在华为虚拟键上面,当出现虚拟键的时候 ,会把提示层顶上去,导致界面无法正确的重叠,看起来就有适配问题。
解决方法可以通过在显示dialog的时候,直接隐藏虚拟键 ,就好了。

<code>
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
// | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

</code>

以上 就是这次的总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容