我想更改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中进行样式设置对我来说是一个很大的麻烦。