1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 华为手机和谷歌原生系统虚拟按键遮挡布局问题

华为手机和谷歌原生系统虚拟按键遮挡布局问题

时间:2023-11-20 17:04:53

相关推荐

华为手机和谷歌原生系统虚拟按键遮挡布局问题

很多情况下,例如华为手机和谷歌原生系统只有虚拟按键,这时候假如你们做了特殊处理我们可以将布局绘制到navigationBar里面。当然为了避免这种情况,我们应该讲所有的绘图到在navigationBar上面。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><item name="android:clipToPadding">false</item><item name="android:windowTranslucentNavigation">false</item>//适配华为手机的虚拟按键<item name="android:windowTranslucentStatus">true</item><item name="android:navigationBarColor">@color/white10</item><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/white10</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowBackground">@color/windowBackground</item><item name="android:textColorHighlight">@color/white</item><item name="android:textColorPrimary">@color/white</item><item name="android:textColorSecondary">@color/white</item><item name="android:textColor">@color/white</item><item name="android:divider">@color/white</item><item name="android:textColorHint">@color/white</item><item name="colorControlNormal">@color/white</item><item name="colorControlActivated">@color/white</item><item name="colorControlHighlight">@color/white</item></style>

//适配华为手机的虚拟按键

<item name="android:windowTranslucentNavigation">false</item>

沉浸栏导航栏也不要了

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明状态栏getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}

这样我们就没有手动绘制得出每个navigationBar的高度。stackoverflow的至今没有一个完全的答案可以判断是否存在虚拟按键

private int getNavigationBarHeight() {Resources resources = getResources();int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");if (resourceId > 0) {return resources.getDimensionPixelSize(resourceId);}return 0;}

加了一个margin但是在小米手机这种没有虚拟键的也同时预留了一段空白。

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