如何更改ActionBar上溢出按钮的颜色(3个垂直点)和ToolbarItem的文本颜色?

时间:2018-11-08 11:46:22

标签: android xamarin xamarin.forms android-actionbar toolbar

我想更改ToolbarItem和溢出按钮的颜色(3个垂直点)。正如我所发现的,colorPrimaryDark对这两者都负责。如果更改颜色,则点或ToolbarItem文本的颜色也会更改。但是更改colorPrimaryDark会导致我的通用应用程序中对各种元素进行修改。

如何专门更改ActionBar中项目的颜色?

在这里,我在 MainActivity.cs 中为我的应用定义 AppTheme

[Activity(Theme = "@style/AppTheme", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
    // ...    
}

资源/值下的 themes_apptheme.xml 中,我定义了 AppTheme

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="AppTheme" parent="android:Theme.Material.Light">
        <!-- ... -->
        <item name="android:colorPrimaryDark">@color/primaryDark</item>
        <item name="android:textColorPrimary">@color/primaryDark</item>
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
    </style>

</resources>

资源/值下的 styles.xml 中,有引用的 MyActionBarTheme

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:homeAsUpIndicator">@drawable/ic_back</item>
        <!--<item name="android:background">@color/primaryDark</item>-->
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:actionMenuTextColor">@color/white</item>
        <item name="android:actionModeBackground">@color/primaryDark</item>
    </style>

</resources>

我已经尝试过类似问题(例如textColorSecondary)的解决方案,但是没有一个解决问题或专门针对我的需求。对于点,可以使用图像,但这不会改变ToolbarItem的颜色,并且似乎不是必需的。另外,其他解决方案也使用较新的Toolbar而不是ActionBar。此外,主题是不同的。我可以以某种方式使用自定义渲染器吗?还是在我的样式中添加一项就足够了?是哪一个?

PS:我正在使用Xamarin.Forms 2.5.0.121934

编辑:

我的目标是使溢出按钮和ToolbarItem文本具有白色。如果使用以下命令,则可以实现:

<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
    <!-- ... -->
</style>

此方法的缺点是ContextAction的背景为黑色,我不知道如何更改颜色(与以前一样,使用圆点和工具栏按钮)。在Android中进行样式设置对我来说是一个很大的麻烦。

0 个答案:

没有答案