材质主题Light中的文字颜色不是.DarkActionBar

时间:2016-09-27 20:38:56

标签: android xamarin.android material-design mvvmcross android-styles

我正在尝试使用Material Design Light.DarkActionBar主题自定义App Theme,但actionBar中的文本颜色为黑色。我尝试使用textColorPrimary将颜色更改为白色,但是当我这样做时,我的应用中的所有文本都变为白色。

这是我的价值观/风格:

    <resources>
  <!-- Inherit from the light Material Theme -->
  <style name="MissaoCaronaTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/amareloSecundario</item>
    <!-- cor da barra -->
    <item name="colorPrimary">@color/amareloPrimario</item>
    <!-- Cor dos controles -->
    <item name="colorAccent">@color/amareloPrimario</item>
  </style>

</resources>

这是我的值-v21 / styles:

<resources>
  <style name="MissaoCaronaTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
    <item name="android:colorPrimaryDark">@color/amareloSecundario</item>
    <!-- cor da barra -->
    <item name="android:colorPrimary">@color/amareloPrimario</item>
    <!-- Cor dos controles -->
    <item name="android:colorAccent">@color/amareloPrimario</item>
  </style>
</resources>

这是我的androidmanifest:

<application android:label="@string/ApplicationName" android:theme="@style/MissaoCaronaTheme"></application>

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        local:MvxBind="Text Hello" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        local:MvxBind="Text Hello" />
</LinearLayout>

这是我的活动:

[Activity(Label = "Usuário")]
    public class UsuarioEditView : MvxActivity<UsuarioViewModel>
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.UsuarioEditView);
        }
    }

4 个答案:

答案 0 :(得分:1)

请初始化您的主题活动标签部分遵循代码。

[Activity(Label = "Usuário", Theme = "@style/MissaoCaronaTheme", Icon = "@drawable/icon")]

答案 1 :(得分:0)

维尼修斯,

您可以为actionBar中的文本创建特定样式,并仅将其用于此文本,而不是更改textColorPrimary。

例如:

在styles.xml中:

<item name="colorTextActionBar">@color/branco</item>

在这种情况下,还要编辑color.xml文件:

<item name="branco" type="color">#FFFFFFFF</item>

答案 2 :(得分:0)

因此,当您更改textColorPrimary时,它将影响整个应用主题,这意味着与此样式关联的所有组件都将受到影响。这就是为什么你的所有文字都变成了白色的原因。 因此,您可以根据自己的选择添加所选颜色,而不是更改常用颜色。 您还需要确保在colors.xml文件中添加相应的颜色。

在styles.xml中:

<item name:"nameOfYourChoice">@color/colorName</item>

在colors.xml:

<color name="colorName">#colorValue</color>

确保正确编辑xml文件。

答案 3 :(得分:0)

我发现了问题。问题是来自MvvmCross框架的MvxActivity。我不知道为什么,但是当我在材料设计中使用MvxActivity时,ActionBar的文本总是黑色的,当我在AppCompat主题中使用MvxAppCompatActivity时,ActioBar标题是白色的。