1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于Android全面屏与虚拟按键适配问题

关于Android全面屏与虚拟按键适配问题

时间:2018-09-10 17:16:43

相关推荐

关于Android全面屏与虚拟按键适配问题

随着手机不断更新换代,从物理按键到虚拟按键到全面屏都需要去适配。

1. 最简单的虚拟按键适配:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

Window window = getWindow(); // Translucent status bar

window.setFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}

布局:android:fitsSystemWindows="true"

最近手上的项目在写电商,按照京东首页的风格写:沉浸式状态栏。

因为android:fitsSystemWindows="true"的原理是加paddingTop,发现虚拟按键问题确实不用考虑,但是也无法实现沉浸式状态栏的效果。如果项目只需要动态设置状态栏颜色,建议直接使用。

2.判定手机是否有虚拟按键:

public static booleancheckDeviceHasNavigationBar(Context context) {booleanhasNavigationBar =false;Resources rs = context.getResources();intid = rs.getIdentifier("config_showNavigationBar","bool","android");if(id > 0) {hasNavigationBar = rs.getBoolean(id);}try{Class systemPropertiesClass = Class.forName("android.os.SystemProperties");Method m = systemPropertiesClass.getMethod("get", String.class);String navBarOverride = (String) m.invoke(systemPropertiesClass,"qemu.hw.mainkeys");if("1".equals(navBarOverride)) {hasNavigationBar =false;}else if("0".equals(navBarOverride)) {hasNavigationBar =true;}}catch(Exception e) {}returnhasNavigationBar;}

本人手机新换的小米8,测试一下项目发现底部还是空出了虚拟按键的高度。搜索发现此方法利用反射拿到系统信息,判断的手机是否有虚拟按键。而不是页面。

寻觅一天发现一位博主的文章,欣喜若狂。

/wzhseu/article/details/58117424

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。