lop*_*ael 9 android navigationbar material-design
我想改变(开关)颜色的的导航栏:
黑色背景和白色图标 - > 白色背景和黑色图标.
我知道这是可能的,因为我已经看到了在uCrop图书馆由Yalantis:
我已经知道更改状态栏的颜色,我们需要使用android:windowLightStatusBar您android:windowLightStatusBar可在Android的23.
可能有这种类型的财产吗?
小智 9
对于 API 27+,您可以通过样式执行此操作:
<!-- added in API 27 -->
<item name="android:windowLightNavigationBar">true</item>
<!-- required to contrast the dark buttons -->
<item name="android:navigationBarColor">@android:color/white</item>
<!-- optional -->
<item name="android:navigationBarDividerColor">@android:color/black</item>
Run Code Online (Sandbox Code Playgroud)
虽然 XML 属性是在 API 27 中引入的,但对轻型导航栏的支持是在更早的一个版本中引入的,在 API 26 中,通过SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.
因此,要针对支持它的最早设备,您必须通过代码而不是 XML 样式来实现。
小智 7
您可以在 v26/styles.xml 中控制导航栏背景颜色:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppTheme.Base">
...
<item name="android:navigationBarColor">@android:color/white</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
为了使导航栏中按钮的颜色与浅色背景相匹配,您需要在活动的装饰视图上设置 2 个标志。
在您的活动中:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS |
SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
Run Code Online (Sandbox Code Playgroud)
要使其生效,窗口必须请求 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 而不是 FLAG_TRANSLUCENT_NAVIGATION。
请参阅:https : //developer.android.com/.../View#SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
小智 -27
这个酒吧叫做小吃店,试试这个:
snackBarView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.BLACK));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7624 次 |
| 最近记录: |