Anpassen von AppCompat Material Button Style?

Ich benutze das AppCompat-Thema und ich möchte das Attribut minHeight auf meine Schaltflächen setzen:

<style name="Theme.MyTheme" parent="Theme.AppCompat"> <item name="android:buttonStyle">@style/MyButtonStyle</item> </style> <style name="MyButtonStyle" parent="...?"> <item name="android:minHeight">60dp</item> </style> 

Allerdings gibt es keine Widget.AppCompat.Button Stil, um als das übergeordnete für MyButtonStyle . Wenn ich android:Widget.Button , dann sehen alle meine Tasten wie der alte crappy Stil aus. Ich habe verschiedene andere AppCompat-Themen wie TextAppearance.AppCompat.Button , aber sie funktionieren nicht.

  • Wie ListView Recycling-Mechanismus funktioniert
  • Android Viewpager als Image Slide Galerie
  • GetView Vs. BindView in einem benutzerdefinierten CursorAdapter?
  • Android In App Subscription gibt immer die erste Quittung, ich bekomme nie die Erneuerung
  • Android benutzerdefinierte Kamera einfrieren nach Zoom
  • JNI: Von C-Code zu Java und JNI
  • Das Verlassen eines übergeordneten Themas für den Button-Style bewirkt auch, dass der Button nicht richtig gestylt wird.

    Wie kann ich die Standard- Theme.AppCompat buttonStyle ?

  • Wie kann ich Dalvik kompilieren, um es lokal auf Linux zu führen?
  • Android edittext Schlüsselrückkehr geht zum nächsten Text
  • Wie bekomme ich einen transparenten Hintergrund von webView für 4.0 Version
  • Ich versuche, ein Fragment zu meinem Fragmentcontainer FrameLayout hinzuzufügen
  • Android Network Service Discovery "Timeout"?
  • Testen von mehreren Aktivitäten mit Espresso
  • 3 Solutions collect form web for “Anpassen von AppCompat Material Button Style?”

    Sie können Base.MyButtonStyle verlängern android:Widget.Holo.Button auf API 14+ (in res/values-v14/styles.xml ) und android:Widget.Material.Button auf API 21+ (in res/values-v21/styles.xml Dieser Stil ändert sich entsprechend der Gerätesystemversion. Setzen Sie hier Ihre plattformspezifischen Änderungen ein.

    Dann habe MyButtonStyle erweitern und das android:minHeight definieren android:minHeight hier (in res/values/styles.xml ). Dies gilt für alle Plattformen.

    Sie können dann Stil MyButtonStyle .

    Dieses Beispiel nimmt an, dass Ihr Minimum SDK 14 ist.

    Und ja, es gibt keine appcompat-v7 Button-Stil (gut, zumindest noch nicht).

    BEARBEITEN

    Das geht davon aus, dass du mit Holo-Knöpfen auf Plattformen, die älter als Lollipop sind, in Ordnung ist. Es fühlt sich unauffällig an und wenn man auf Kräuselungen verzichten kann, sollte es gut so sein. Wenn Sie Kräuselungen wünschen, schlage ich Ihnen Google für eine Drittanbieter-Lollipop-Knopf-Bibliothek vor.

    Um meine eigene Frage zu beantworten, scheint es, dass AppCompat das Button Widget derzeit nicht unterstützt:

    AppCompat bietet ähnliche Verhalten auf früheren Versionen von Android für eine Teilmenge von UI-Widgets:

    • Alles, was von der AppCompat-Symbolleiste (Action-Modi, etc.)
    • Text bearbeiten
    • Spinner
    • CheckBox
    • Radio knopf
    • Schalter (verwenden Sie die neue android.support.v7.widget.SwitchCompat)
    • CheckedTextView

    Der einzige Workaround, den ich sehe, wäre, den Material-Button-Stil aus dem Android-Quellcode neu zu erstellen, eine Aufgabe, die sich außerhalb des Umfangs meines Wunsches erstreckt.

    Benutzerdefinierte Schaltflächen-Stil mit AppCompat +22 in Ihrem styles.xml

     <style name="Button.Tinted" parent="Widget.AppCompat.Button"> <item name="colorButtonNormal">YOUR_TINT_COLOR</item> <item name="colorControlHighlight">@color/colorAccent</item> <item name="android:textColor">@android:color/white</item> </style> 

    In deiner layout.xml

     <Button android:id="@+id/but_next" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/but_continue" android:theme="@style/Button.Tinted" /> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.