适配的原则是:”手势提示线”(也就是虚拟键)的背景颜色和页面整体的背景颜色保持一致;
主要有两种适配方式:”使用沉浸式虚拟键”和“给虚拟键设置合适的颜色”。
图例为开启“手势提示线”效果 图例为关闭“手势提示线”效果
2.使用沉浸式虚拟键
2.1如何设置
沉浸式虚拟键,即app的content view延伸到虚拟键区域,虚拟键的颜色透明。类似的,还有沉浸式状态栏,即app的content view延伸到状态栏区域,状态栏的颜色透明。
有两种设置的方式,参考代码如下。
方式1:
方式2:
2.2可能存在的问题
设置了沉浸式虚拟键和沉浸式状态栏之后,状态栏和虚拟键会遮挡住app的内容,效果如下:
2.3解决方案
如果不希望app的内容被遮挡,可以给view设置 android:fitsSystemWindows=”true”,设置之后,系统会给该view自网页转APP动加上paddingTop和paddingBottomapp生成器。参考代码和效果如下:
2.4适用的场景举例
当页面具有复杂的背景或纹理时:
3.给虚拟键设置合适的颜色
3.1如何设置
使用setNavigationBarColor来设置虚拟键的颜色。注意不要单独把颜色设置成透明,如果要设置成透明的话,参考上面的沉浸式虚拟键,配合其他flag使用。
参考下面的代码,按照这种方式设置之后,app的content view将不会延伸到虚拟键区域。
3.2可能存在的问题
同一个应用往往有多个子页面,如果页面中背景颜色发生了变化,为了让虚拟键的颜色和页面的颜色保持一致,需要重新设置虚拟键的颜色,而不是统一给应用设置一个色值。
目前大部分业务已经适配了深色模式,因此在深色模式下还需要单独对虚拟键背景做深色适配。
3.3适用的场景举例
使用底部tab的颜色或者页面背景的颜色
方法如下:1:text-line-through-color:设置删除线的颜色。
2:text-overline: text-overline-color: 设置上划线的颜色
3:text-underline:text-underline-color:设置下划线的颜色