【问题标题】:Change color of ToolBarItem in XAML在 XAML 中更改 ToolBarItem 的颜色
【发布时间】:2018-01-01 13:40:08
【问题描述】:

我在我的应用程序中添加了一个工具栏项,但是我没有看到更改其背景和文本颜色的方法。

<ContentPage.ToolbarItems>

    <ToolbarItem Text="About" 
                 Icon="ic_action_more_vert.png"
                 Priority="0"
                 Order="Secondary"
                 Clicked="ToolbarItem_Clicked"/>

    <ToolbarItem Text="Settings"
                 Icon="ic_action_more_vert.png"
                 Priority="0"
                 Order="Secondary"/>

</ContentPage.ToolbarItems>

这是我想要改变的。带有白色文本的黑色菜单,想要更改背景颜色和文本颜色。知道如何实现这一目标吗?

【问题讨论】:

  • 我认为你必须通过 Android 样式/主题来做到这一点

标签: xaml xamarin.android xamarin.forms mobile-development


【解决方案1】:

正如@Gerald Versluis 建议的那样,您可以通过 Android 样式来做到这一点。

首先你可以在Android项目中Resources的values文件夹下找到styles.xml文件:

在此文件中,您可以打开此文件并为您的菜单创建一个样式,如下所示:

<style name="AppToolbarTheme" parent="Theme.AppCompat.NoActionBar">
  <item name="android:colorBackground">#2196F3</item>
  <item name="android:textColor">#000080</item>
</style>

然后在android项目中打开Toolbar.axml

并像这样更改Toolbarapp:popupTheme

app:popupTheme="@style/AppToolbarTheme"

更新:

这里是Toolbar的代码:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/AppToolbarTheme" />

【讨论】:

  • @Curiousity,您使用 XF 进行开发吗?什么版本?
  • 是的,我正在使用 XF。版本 - 4.5
  • @Curiousity,4.5 版?我这边最新版本是2.3.4.247,尝试清理并重建你的项目,如果问题仍然存在,请给我你的styles.xml。
  • 非常抱歉。我的错。版本是 2.3.4.247。和你的一样。我多次尝试清理和重建项目。可能是我错过了一些东西。但我按照上面的做了。
  • @Unicorn_Girl,把android:popupTheme改成app:popupTheme,其实这个属性默认是有主题定义的,把style改成我们在styles.xml中定义的(AppToolBarTheme)即可。
【解决方案2】:

我找到了解决方案:https://forums.xamarin.com/discussion/40529/toolbaritem-textcolor

简单添加到“styles.xml”:

<item name="android:actionMenuTextColor"> @color/orange </item>

我花了好几个小时寻找它..

【讨论】:

  • 您的方法完全有效,但是,我有一个菜单、页面标题和下一个。所以正在改变的颜色只是次要的,页面标题仍然是白色的。有什么想法吗?
【解决方案3】:

要更改第一项文本编辑 android:theme android:theme="@style/ThemeOverlay.AppCompat.Light"android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 为第二项文本编辑 popupTheme

【讨论】:

    【解决方案4】:

    这对我有用

    styles.xml

    &lt;item name="android:actionMenuTextColor"&gt;#000080&lt;/item&gt;

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多