【发布时间】:2018-04-27 03:42:50
【问题描述】:
我一直在尝试使用 Xamarin(电池、信号和时钟所在的位置)更改状态栏的字体颜色...
有人可以建议我怎么做吗?
谢谢
【问题讨论】:
-
这将解决您的问题:stackoverflow.com/a/34859573/5167909
标签: android xamarin android-statusbar
我一直在尝试使用 Xamarin(电池、信号和时钟所在的位置)更改状态栏的字体颜色...
有人可以建议我怎么做吗?
谢谢
【问题讨论】:
标签: android xamarin android-statusbar
我不确定您尝试针对哪个 API 级别,但如果您可以使用 API 23 特定的东西,您可以将以下内容添加到您的 AppTheme styles.xml:
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
当android:windowLightStatusBar设置为true时,当状态栏颜色为白色时可以看到状态栏文字颜色,反之,当android:windowLightStatusBar设置为false时,会设计状态栏文字颜色当状态栏颜色变暗时可见。
例子:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- Status bar stuff. -->
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
</style>
【讨论】:
if (Build.VERSION.SdkInt > Android.OS.BuildVersionCodes.M)
{
var activity = Activity; //your activity ref..
var needWhite = true; //your goal
// Fetch the current flags.
var flags = activity.Window.DecorView.SystemUiVisibility;
// Update the SystemUiVisibility dependening on whether we want a Light or Dark theme.
if (needWhite)
{
activity.Window.DecorView.SystemUiVisibility = flags | (StatusBarVisibility)SystemUiFlags.LightNavigationBar;
}
else
{
activity.Window.DecorView.SystemUiVisibility = flags ^ (StatusBarVisibility)SystemUiFlags.LightNavigationBar;
}
}
【讨论】:
您可以通过更改android原生项目下“color.xml”文件的“colorPrimaryDark”属性来更改它。
【讨论】: