Как изменить цвет кнопки переполнения (3 вертикальные точки) и цвет текста ToolbarItem на панели действий? - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу изменить цвет 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 - большая проблема для меня.

...