uniapp打包app 底部导航栏自定义颜色
我做着我想要做到的事情,有人欣赏我的自信,也有人说我普信。
前言
uniapp 安卓自定义底部导航栏的颜色
开始我的有些页面是黑色的底部和上面不是一样的颜色看着好奇怪就弄了一下
一、上代码
// #ifdef APP-PLUS
if (uni.getSystemInfoSync().platform === 'android') {
try {
const Color = plus.android.importClass("android.graphics.Color");
const WindowManager = plus.android.importClass("android.view.WindowManager");
const Build = plus.android.importClass("android.os.Build");
const View = plus.android.importClass("android.view.View");
plus.android.importClass("android.view.Window");
const mainActivity = plus.android.runtimeMainActivity();
const window = mainActivity.getWindow();
// Android 10+ 关闭对比度强制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
window.setNavigationBarContrastEnforced(false);
}
// 自定义颜色值 #F5F3FC
const customColor = Color.parseColor("#F5F3FC");
// Android 5.0+ 设置导航栏为自定义颜色
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setNavigationBarColor(customColor); // 设置自定义颜色
// Android 8.0+ 设置深色按钮(适配浅色背景)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
const decorView = window.getDecorView();
const flags = decorView.getSystemUiVisibility();
// 添加浅色导航栏标志(使按钮变深色)
decorView.setSystemUiVisibility(flags | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
}
// 移除半透明标志确保纯色生效
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
} catch (e) {
console.error('修改导航栏颜色失败:', e);
}
}
// #endif
总结
亲测有效