Я хочу изменить цвет ToolbarItem
и кнопки переполнения (3 вертикальные точки). Как я выяснил, colorPrimaryDark
отвечает за оба. Если я изменю цвет, также изменится цвет точек или текста ToolbarItem
. Но изменение colorPrimaryDark
приводит к изменениям в моем общем приложении для всех видов элементов.
Как изменить цвет специально для элементов в ActionBar
?
Здесь я определяю AppTheme для моего приложения в MainActivity.cs :
[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
Edit:
Моя цель - иметь белый цвет для кнопки переполнения и текста ToolbarItem
. Этого можно добиться, если я использую следующее:
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
<!-- ... -->
</style>
Недостатком этого подхода является то, что фон ContextAction
черный, и я не знаю, как изменить цвет (как раньше с точками и кнопкой на панели инструментов). Стилизация в Android - большая проблема для меня.