Почему мои компоненты дизайна материала не имеют соответствующего цвета, как указано на сайте material.io? - PullRequest
2 голосов
/ 11 октября 2019

Я только начал изучать дизайн материалов на официальном веб-сайте material.io и решил попробовать его в новом проекте. Я сделал основной проект с пустым действием, добавил макет и добавил два компонента:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ui.authentication.LoginActivity">

    <com.google.android.material.textview.MaterialTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RRRRRRRRR"/>

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TTTTTTTT"/>

</LinearLayout>

Ничего особенного. Моя проблема в том, что приведенный выше код не отражает цвета, которые я определил и реализовал в своей теме, и я не могу понять, почему (я потратил часы, пытаясь найти правильный ответ в Интернете, а такжеофициальная документация на материал.ио и еще ничего). Это мои стили и цвета XML-файлов: Цвета

<!--?xml version="1.0" encoding="UTF-8"?-->
<resources>
    <color name="colorPrimary">#880e4f</color>
    <color name="colorPrimaryVariantLight">#bc477b</color>
    <color name="colorPrimaryVariantDark">#560027</color>
    <color name="colorSecondary">#006064</color>
    <color name="colorSecondaryVariantLight">#428e92</color>
    <color name="colorSecondaryVariantDark">#00363a</color>
    <color name="colorOnPrimary">#ffffff</color>
    <color name="colorOnSecondary">#ffffff</color>
    <color name="colorError">#B00020</color>
    <color name="colorOnError">#ffffff</color>
    <color name="colorSurface">#ffffff</color>
    <color name="colorOnSurface">#212121</color>
    <color name="colorBackground">#ffffff</color>
    <color name="colorOnBackground">#212121</color>
</resources>

Стили

<resources>
    <style name="MaterialTheme" parent="Theme.MaterialComponents">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryVariant">@color/colorPrimaryVariantDark</item>
        <item name="colorOnPrimary">@color/colorOnPrimary</item>
        <item name="colorSecondary">@color/colorSecondary</item>
        <item name="colorSecondaryVariant">@color/colorSecondaryVariantDark</item>
        <item name="colorOnSecondary">@color/colorOnSecondary</item>
        <item name="colorError">@color/colorError</item>
        <item name="colorOnError">@color/colorOnError</item>
        <item name="colorSurface">@color/colorSurface</item>
        <item name="colorOnSurface">@color/colorOnSurface</item>
        <item name="android:colorBackground">@color/colorBackground</item>
        <item name="colorOnBackground">@color/colorOnBackground</item>
    </style>

</resources>

Я почти на 100% уверен, что мне что-то не хватает, но я не могукажется, найти ответ на проблему. Я высоко ценю любую помощь, которую вы можете оказать мне. Заранее спасибо.

Ниже приведен экран с моим макетом и предварительный просмотр (который полностью белый). enter image description here

1 Ответ

1 голос
/ 11 октября 2019

Вы можете использовать:

<style name="MaterialTheme" parent="Theme.MaterialComponents">
    <!-- Used by TextView -->
    <item name="android:textColorTertiary">@color/...</item>

    <!-- Used by TextInputLayout -->
    <item name="android:textColorPrimary">@color/colorAccent</item>

</style>

enter image description here enter image description here

...