如何更改 Xamarin Forms 中的文本颜色状态栏?

Har*_*rry 2 xamarin.android xamarin xamarin.forms

我想用白色设计状态栏,但是通知的文本和图标的颜色相同,那么如何更改状态栏的文本颜色?。

状态栏颜色

之前

在此处输入图片说明

之后在此处输入图片说明

Jun*_*ang 13

好吧,@Harry Android 与 IOS 不同。

现在我的首要任务是 Android,所以是的。iOS 可能在未来

安卓:

Android 6.0开始,谷歌官方提供支持,android:windowLightStatusBar在style属性中配置Yes,设置为 时true,当状态栏的背景颜色为浅色时,状态栏的文字颜色会变灰。同样是truefalse。至于如下:

<style name="MainTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
       ...
     <item name="android:windowLightStatusBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在 xamarin.forms 中可以按照此链接获得成功。

基本上你必须使用FormsAppCompatActivity代替FormsApplicationActivityTheme.AppCompat.Light.NoActionBar代替Theme.Material.Light

如果想要某些页面显示不同的样式,可以在活动的主题中更改它。

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".Activity.SecondActivity"
        android:launchMode="singleTop"
        android:theme="@style/customttheme"/>

</application>
Run Code Online (Sandbox Code Playgroud)

IOS:

(1)、info.plist在Project.IOS中添加follow key-value :

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)

(2) 不使用代码:

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
Run Code Online (Sandbox Code Playgroud)

(3),或使用代码状态栏,方法的组文本颜色FinishedLaunchingAppDelegate.cs设定如下:

 app.StatusBarStyle = UIStatusBarStyle.LightContent;
Run Code Online (Sandbox Code Playgroud)

(4)如果启动应用程序后想要一些页面改变颜色,可以为IOS自定义 ViewControllerRendererViewDidLoad()方法:

UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;
Run Code Online (Sandbox Code Playgroud)