Android 屏幕适配 - 设置底部虚拟菜单栏

 Android 手机现在越来越多的是全面屏/刘海屏,不止需要适配头部的状态栏,如有需要,可以参考: Android 屏幕适配 - 支持刘海屏

底部的虚拟菜单栏也需要适配,这里拿小米9的机型来示例:默认是白底的,如果应用背景是其他颜色(比如黑色),是需要做下适配的;

如下示例:

Android 屏幕适配 - 设置底部虚拟菜单栏_第1张图片

所以我们可以简单的适配一下,即设置它的颜色来起到适配的作用;
这里Android有提供方法:android:navigationBarColor/ setNavigationBarColor(@ColorInt int color) 

xml:

@color/colorBackground

activity: 

getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.colorBackground))

这里的处理分两步:

1. 在style中设置底部虚拟菜单栏的默认背景色:

// manifest中的 application - android:theme:




// 对于 @style/AppTheme.NoActionBar:

2. 在BaseActivity中再处理一下其他背景色的页面:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 根据不同的页面去设置不同的颜色
        if (isNavigationBarColorWhite()) {
            window.navigationBarColor = ContextCompat.getColor(this, R.color.colorWhite)
        }

        setContentView(activityProperties.layoutResID)
        init()
    }


    fun Activity.isNavigationBarColorWhite(): Boolean {
        return mutableListOf(WelcomeActivity::class.java.simpleName).any {
             this::class.java.simpleName == it
        }
    }

 

 

 

你可能感兴趣的:(Android,android,navigationBar,Color)