ale*_*lex 36 android android-5.0-lollipop
在Android 5.0的指南中,导航栏似乎可以自定义:http: //www.google.com/design/spec/layout/structure.html#structure-system-bars
如何更改导航栏颜色?我想用白色风格.
截图:

编辑:在我的资源中,我测试了样式:
<item name="android:navigationBarColor" tools:targetApi="21">@android:color/white</item>
Run Code Online (Sandbox Code Playgroud)
但按钮是白色的.我想要与第二张图像相同的渲染器.

Eye*_*ear 28
从API 27开始,现在可以使用导航栏的灯光样式:
<item name="android:navigationBarColor">@android:color/white</item>
<item name="android:windowLightNavigationBar">true</item>
Run Code Online (Sandbox Code Playgroud)
从文档:
windowLightNavigationBar
如果设置,将绘制导航栏,使其与光导航栏背景兼容.
要使此操作生效,窗口必须使用windowDrawsSystemBarBackgrounds绘制系统栏背景,并且不得使用windowTranslucentNavigation请求导航栏为半透明.对应于在装饰视图上设置SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
Roa*_*ies 19
在您的活动中使用此选项.
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.green));
}
Run Code Online (Sandbox Code Playgroud)
Rah*_*hul 12
此代码根据您的屏幕背景颜色更改导航栏颜色:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.any_color));
}
Run Code Online (Sandbox Code Playgroud)
您还可以为导航栏使用灯光样式:
<item name="android:navigationBarColor">@android:color/white</item>
Run Code Online (Sandbox Code Playgroud)
导航栏不应该是彩色的
自定义导航和状态栏时,要么使它们都透明,要么仅修改状态栏.在所有其他情况下,导航栏应保持黑色.
(来源https://developer.android.com/training/material/theme.html)
但是,您可以使用此库来实现您想要的:) https://github.com/jgilfelt/SystemBarTint
小智 5
在您的v21 /样式中添加此行
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
</style>
Run Code Online (Sandbox Code Playgroud)
您还可以通过编程方式在 API 26 中设置灯光系统导航栏:
View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
Run Code Online (Sandbox Code Playgroud)
View可能在哪里findViewById(android.R.id.content)。
但请记住:
为了使其生效,窗口必须请求
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS但不请求FLAG_TRANSLUCENT_NAVIGATION。
请参阅文档。
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.colorWhite));
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); //For setting material color into black of the navigation bar
}
Run Code Online (Sandbox Code Playgroud)
如果您的应用的 API 级别大于 23,请使用此选项
getWindow().setNavigationBarColor(ContextCompat.getColor(MainActivity.this, R.color.colorWhite));
getWindow().getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
Run Code Online (Sandbox Code Playgroud)
可能此代码不适用于 API 级别 30。因为“SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR”在 API 级别 30 中已弃用。请查看:https : //developer.android.com/reference/android/view/View#SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
| 归档时间: |
|
| 查看次数: |
42214 次 |
| 最近记录: |