You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms Android:AppCompatActivity的Toolbar背景与标题色无法修改

我之前在Xamarin Forms Android项目里也踩过Toolbar颜色设置的坑,试了好几种方法才搞定,给你分享两个靠谱的解决方案,应该能解决你的问题:

方案1:通过主题样式配置(推荐,适合静态设置)

这个方法最稳定,通过修改Android项目的主题样式统一配置Toolbar颜色,不需要额外写代码。

  1. 打开(或新建)Android项目下的Resources/values/styles.xml文件,修改你已经在Activity里指定的MyTheme样式:
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 设置Toolbar的背景色 -->
    <item name="colorPrimary">@color/toolbar_bg</item>
    <!-- 设置Toolbar标题的颜色(兼容Android 5.0+) -->
    <item name="android:titleTextColor">@color/toolbar_title</item>
    <!-- 兼容旧版本Android的标题颜色设置 -->
    <item name="titleTextColor">@color/toolbar_title</item>
</style>
  1. 在Resources/values/colors.xml里定义对应的颜色值(没有这个文件就新建):
<resources>
    <color name="toolbar_bg">#2196F3</color> <!-- 替换成你想要的背景色 -->
    <color name="toolbar_title">#FFFFFF</color> <!-- 替换成你想要的标题色 -->
</resources>

因为你的MainActivity已经指定了Theme = "@style/MyTheme",重新运行项目后,Toolbar的颜色就会自动生效。如果项目用的是NavigationPage,这个配置也会自动应用到默认的导航栏Toolbar上。

方案2:代码动态修改(适合运行时调整颜色)

如果需要在程序运行过程中动态改变Toolbar颜色,可以在MainActivity的OnCreate方法里直接操作Toolbar实例:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    Xamarin.Essentials.Platform.Init(this, savedInstanceState);
    global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

    // 找到默认的Toolbar控件
    var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
    if (toolbar != null)
    {
        // 设置背景色,可使用Color类预设颜色或解析十六进制颜色
        toolbar.SetBackgroundColor(Android.Graphics.Color.ParseColor("#2196F3"));
        // 设置标题文本颜色
        toolbar.SetTitleTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
        // 如果需要设置副标题颜色,可添加以下代码
        // toolbar.SetSubtitleTextColor(Android.Graphics.Color.ParseColor("#CCCCCC"));
    }

    LoadApplication(new App());
}

几个需要注意的坑:

  • 不要同时混用主题配置和代码设置,两者容易冲突,选一种方式即可。
  • 如果你的Xamarin Forms项目里用NavigationPage设置了BarBackgroundColor或BarTextColor,会优先覆盖Android端的设置,需要把这些XAML里的设置去掉。
  • 确保使用的是Android.Support.V7.Widget.Toolbar而不是旧的Android.Widget.Toolbar,否则可能找不到控件或设置不生效。

内容的提问来源于stack exchange,提问作者Jamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:26:19