Niedawno przeprowadziłem się z Theme.AppCompat do Theme.MaterialComponents, ale nie rozumiem, jak organizować kolory.

<style name="Theme.Test" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/orange</item>
        <item name="colorPrimaryVariant">@color/red</item>
        <item name="colorOnPrimary">@color/yellow</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/green</item>
        <item name="colorSecondaryVariant">@color/black</item>
        <item name="colorOnSecondary">@color/white</item>
    </style>

Na przykład, dlaczego przyciski mają kolor pomarańczowy, a tło widoku karty nie ma koloru pomarańczowego?

Czy ktoś może mi wyjaśnić więcej na temat tych zmiennych colorPrimary , colorPrimaryVariant , colorOnPrimary , colorSecondary , colorSecondaryVariant and colorOnSecondary

Czy istnieje oficjalna dokumentacja?

0
Taha 28 czerwiec 2021, 13:39

4 odpowiedzi

Najlepsza odpowiedź

Możesz zapoznać się z następującą dokumentacją: https://material.io/develop/android/theming/ kolor

  • colorPrimary: kolor wyświetlany najczęściej na ekranach i komponentach Twojej aplikacji. Ten kolor powinien przekazywać wskazówki dotyczące dostępności tekstu / ikonografii, gdy jest narysowany na górze koloru powierzchni lub tła.
  • colorPrimaryVariant: odmiana tonalna koloru podstawowego.
  • colorOnPrimary: kolor, który po narysowaniu nad kolorem podstawowym przekazuje wskazówki dotyczące ułatwień dostępu dla tekstu/ikonografii.
  • colorSecondary: dodatkowy kolor marki aplikacji, zwykle akcentowane uzupełnienie głównego koloru marki.
  • colorSecondaryVariant: odmiana tonalna koloru dodatkowego.
  • colorOnSecondary: kolor, który po narysowaniu nad kolorem dodatkowym przekazuje wskazówki dotyczące ułatwień dostępu dla tekstu/ikonografii.

Możesz również odnieść się do tego Zgłoszenia: https://stackoverflow.com/a/45879575/9246764

2
David Lee 28 czerwiec 2021, 11:40

Okej, więc powinieneś teraz użyć komponentów z motywu Materiał. Na przykład, jeśli chcesz po prostu użyć widoku tekstu i zastosować na nim motyw materiału, powinieneś używać go tak, jak sugerują. Na przykład dla widoku tekstowego powinieneś go użyć

 <com.google.android.material.textfield.TextInputLayout

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="First Name"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    app:hintTextColor="@color/black">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/fName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

</com.google.android.material.textfield.TextInputLayout>

Myślę, że nie używasz widoku karty z motywu materialnego. Po prostu sprawdź oficjalny dokument. https://material.io/components/cards

0
Hazrat ali 28 czerwiec 2021, 11:38

Zapoznaj się z oficjalnymi dokumentami witryn z materiałami dotyczącymi korzystania z tych motywów w systemie Android

https://material.io/develop/android/docs/getting-started

0
Zachary 28 czerwiec 2021, 10:42

Jeśli szukasz szczegółów na temat każdego komponentu, dokumentacja material.io zwykle zawiera informacje o domyślnych wartościach różnych atrybutów .

Na przykład dokumentacja MaterialCardView określa, że ​​domyślny app:cardBackgroundColor to ?attr/colorSurface.

1
Henry Twist 28 czerwiec 2021, 11:42