Как исправить BarTextColor на Android API> = Kitkat без использования styles.axml - PullRequest
0 голосов
/ 02 апреля 2019

Я заметил на Android> = KitKat, я не мог изменить цвет текста по умолчанию на элементах панели инструментов. все, что я могу изменить, это цвет фона. Я попробовал все здесь, используя styles.axml. Цвет фона моей панели инструментов белый, текст и значок меню должны быть синего цвета. На KitKat все белое, включая текст. (В моем файле styles.axml у меня нет белого цвета. Поэтому я полагаю, что это значение по умолчанию.) Следующее решение отлично работает на всех других SDK -> App.xaml

 <Style TargetType="NavigationPage">
        <Setter Property="BarBackgroundColor" Value="ffffff"/>
        <Setter Property="BarTextColor" Value="#1c4d9e"/>
  </Style> 

- МОЙ РЕШЕНИЕ - поскольку я не смог добиться изменения цвета с помощью стилей .xaml. -ПРИМЕЧАНИЕ. Я делаю только экстремальное решение, чтобы определить, является ли SDK KitKat, и просто изменить цвет фона панели инструментов. потому что текст белый. Моя цель - изменить цвет каждого отдельного элемента на панели инструментов независимо от SDK

public void KitKat() 
      {
        var Check = DependencyService.Get<Interfaces.ISDK>();
        var a = Check.IsKitkat();
        if(a == true) 
        {
           new Setter {Property = NavigationPage.BarBackgroundColorProperty, Value = Color.DarkRed};
           new Setter {Property = NavigationPage.BarTextColorProperty, Value = Color.White};

         }

      }

Пример панели инструментов

<ContentPage.ToolbarItems>
        <ToolbarItem  Text="Help" 
              Order="Primary"  Command="{Binding HelpCommand}" />
           <ToolbarItem  AutomationProperties.IsInAccessibleTree="true"  
          Text="Next" Order="Secondary"  Command="{Binding NextCommand}" />
       </ContentPage.ToolbarItems>

1 Ответ

1 голос
/ 04 апреля 2019

Прежде всего, я изменил вкладку Help, выполнив следующие действия.

1.Я добавляю элемент secondary_text в colors.xml,

<color name="secondary_text">#DC143C</color>

2.Я добавляю <item name="actionMenuTextColor">@color/secondary_text</item> в <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> из style.xml

Есть мои скриншоты при запуске в android 8.1 и android 4.4

Android 8.1

enter image description here

Android 4.4

enter image description here

Затем я изменил вкладку Next, выполнив следующие действия.

  1. Я создаю новый стиль в styles.xml, есть код.

 <style name="my.Base" parent="Theme.AppCompat.Light.DarkActionBar">

    <item name="colorPrimary">#488FCE</item>
    <item name="colorPrimaryDark">#488FCE</item>

    <item name="android:windowNoTitle">false</item>
    <item name="android:windowActionBar">true</item>

    <item name="android:textColorPrimary">#ff0000</item>
    <item name="android:textColorPrimaryInverse">#ff0000</item>
    
    </style>
  1. Я использую этот стиль в Toolbar.axml

enter image description here

Вот код, пожалуйста, обратите внимание, app:popupTheme="@style/my.Base", а не android:popupTheme

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

app:popupTheme="@style/my.Base"

/>

Есть мои скриншоты при запуске в android 8.1 и android 4.4.

Android 8.1

enter image description here

Android 4.4

enter image description here

Вот мое демо, вы можете сослаться на него. https://github.com/851265601/ToolbarItemDemo1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...