2

Gibt es eine Möglichkeit, ein Thema auf ein Cardview anzuwenden? Ich möchte den Stil nicht auf jede einzelne Ansicht anwenden, die ich erstelle.Android CardView anwenden Thema

Das ist mein CardView jetzt:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/view_card" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="@style/Custom.Widget.CardView"> 
    <-- I don't want to define the style every time --> 
</android.support.v7.widget.CardView> 

Und mein styles.xml

<style name="Custom.Widget.CardView" parent="CardView"> 
    <item name="cardBackgroundColor">@color/card_backgroundColor</item> 
    <item name="cardCornerRadius">12dp</item> 
    <item name="cardUseCompatPadding">true</item> 
    <item name="contentPadding">4dp</item> 
</style> 

Ich mag würde den Stil themes.xml hinzuzufügen, so dass es wird auf jeden Cardview angewendet, aber ich weiß nicht wie. Ist es sogar möglich, Ansichten aus der Support-Bibliothek zu sehen?

Wenn ich folgendes themes.xml hinzufügen erhalte ich eine Warnung: no resource found that matches the given name: attr 'Cardview'

<item name="Cardview">@style/Custom.Widget.CardView</item> 
+0

Does [diese Frage SO] (http://stackoverflow.com/questions/30417847/attach-custom-cardview-style-to-theme) zu Ihrer Frage beantworten? – Sufian

+0

Nein, das löst nur das Problem, einen anderen Stil basierend auf dem hellen oder dunklen Thema anzuwenden. Allerdings fand ich eine ähnliche [Frage] (http://stackoverflow.com/questions/29914671/how-to-add-cardview-attributes-to-app-theme) mit einer Lösung, um eine Art Wrapper-Klasse zu schreiben. Das würde wahrscheinlich funktionieren, aber ich denke nicht, dass es die eleganteste Lösung ist, weil ich die Support-Bibliotheksklasse durch meine eigene Implementierung ersetzen müsste. – Wirling

Antwort

0

ich dies auch in meinem Projekt verwenden und kein Problem sein, können Sie diese in Ihrem build.gradle nicht hinzufügen

compile 'com.android.support:cardview-v7:25.2.0' 
+0

Nein, es ist da. Ich wäre wahrscheinlich nicht in der Lage, android.support.v7.widget.CardView in meinem Layout zu verwenden, wenn das der Fall wäre. – Wirling

+0

Wenn Sie den CardView-Stil in Thema setzen möchten. Sie können die CardView anpassen. [Dieser Link zeigt, wie man benutzt] (http://stackoverflow.com/questions/29914671/how-to-add-cardview-attributes-to-app-theme) – Better

+0

Ich kam auch zu dieser Schlussfolgerung vor einer Weile und erwähnte es als Kommentar unter meiner Frage. Ich denke immer noch, es wäre besser, wenn ich irgendwie Theming für die Support-Library-Klasse verwenden könnte, anstatt meine eigene Wrapper-Klasse zu erstellen. – Wirling

Verwandte Themen