更改 Xamarin Forms Android 导航页面颜色(按钮和返回)

Posted

技术标签:

【中文标题】更改 Xamarin Forms Android 导航页面颜色(按钮和返回)【英文标题】:Change Xamarin Forms Android Navigation Page Colours (buttons & back) 【发布时间】:2018-04-16 15:24:35 【问题描述】:

我正在尝试更改 Xamarin Forms 应用程序中导航页面的外观。我想要一个所有文本都是白色的蓝色条。我已经能够设置 NavigationPage 的属性,但我无法设置栏按钮项目或后退按钮的颜色。以下是 2 个屏幕截图,说明了我的应用目前的外观:

黑色看起来很糟糕,这需要是白色的。现在我看看如何更改这些颜色,但似乎没有任何效果。

我目前已经尝试过这些帖子中提出的解决方案:

Change navigation bar back button color in xamarin android Change action bar colors Change navigation bar back button color in xamarin android This half works, it sets the toolbar text ALL to white... but then my app's theme is dark, all of the colours change and conflicts with the implemented design.

这已经到了荒谬的地步,我在 ios 上用了不到 5 分钟的时间实现了这一点,而且我花了一天中最好的时间尝试让一些文本变白...

如何将导航栏上的文本设置为白色,iOS 中的一个示例(我前面没有代码)是self.navigationBar.tintColour =' White',它将在导航栏上的任何内容上应用白色.. 正是我想要的!

谢谢,这是我的 style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MainTheme" parent="MainTheme.Base">
    </style>
    <!-- Base theme applied no matter what API -->
    <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
        <item name="windowNoTitle">true</item>
        <!--We will be using the toolbar so no need to show ActionBar-->
        <item name="windowActionBar">false</item>
        <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette -->
        <!-- colorPrimary is used for the default action bar background -->
        <item name="colorPrimary">#2196F3</item>
        <!-- colorPrimaryDark is used for the status bar -->
        <item name="colorPrimaryDark">#1976D2</item>
        <!-- colorAccent is used as the default value for colorControlActivated
         which is used to tint widgets -->
        <item name="colorAccent">#FF4081</item>
        <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight and colorSwitchThumbNormal. -->
        <item name="windowActionModeOverlay">true</item>
        <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>

        <item name="android:actionBarPopupTheme">@style/CustomActionBarPopupTheme</item>
    </style>
    <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="colorAccent">#cbff34</item>
    </style>

    <style name="CustomActionBarPopupTheme" parent="android:ThemeOverlay.Material.Light">
        <item name="android:colorBackground">#cbff34</item>
        <item name="android:textColor">#cbff34</item>
    </style>

</resources>

【问题讨论】:

请参考this。 【参考方案1】:

您可以将样式添加到您的styles.xml,

  <style name="ToolbarStyle" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize color of navigation drawer icon and back arrow -->
    <item name="colorControlNormal">#ffffff</item>
  </style>

并将其作为主题添加到工具栏 layout.axml 中的工具栏(在布局文件夹下的 android 项目中),检查下面 android:theme="@style/ToolbarStyle"

【讨论】:

以上是关于更改 Xamarin Forms Android 导航页面颜色(按钮和返回)的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms - 更改状态栏颜色

更改 DatePicker [Xamarin.Forms] 的颜色

如何更改Android中选项卡页面标题的选定和未选定颜色:Xamarin Forms

更改 Xamarin Forms Picker 按钮样式 [重复]

如何使用 Xamarin Forms 更改键盘的习惯用法

我可以以编程方式更改 Xamarin.Forms 中的 styles.xml 吗?