0

I Button in meinem XML erklärt haben:Theming-Klasse erweitert Ansicht (Button) mit AppCompat

<Button 
    android:id="@+id/custom_id" 
    android:theme="@style/BlueButtonTheme" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:text="@string/custom_string"/> 

wichtigste Linie ist Styling mit BlueButtonTheme:

<style name="BlueButtonTheme" parent="AppTheme"> 
    <item name="android:buttonStyle">@style/BlueButtonStyle</item> 
    <item name="buttonStyle">@style/BlueButtonStyle</item> 

    <item name="colorAccent">@color/blue_dark</item> 
    <item name="colorControlActivated">@color/blue_dark</item> 
    <item name="colorControlHighlight">@color/blue_dark</item> 
    <item name="colorButtonNormal">@color/blue</item> 

    <item name="android:colorAccent">@color/blue_dark</item> 
    <item name="android:colorControlActivated">@color/blue_dark</item> 
    <item name="android:colorControlHighlight">@color/blue_dark</item> 
    <item name="android:colorButtonNormal">@color/blue</item> 

    <item name="android:textColor">@color/white</item> 
</style> 

<style name="BlueButtonStyle" parent="Widget.AppCompat.Button.Colored"> 
    <item name="colorAccent">@color/blue_dark</item> 
    <item name="colorControlActivated">@color/blue_dark</item> 
    <item name="colorControlHighlight">@color/blue_dark</item> 
    <item name="colorButtonNormal">@color/blue</item> 

    <item name="android:colorAccent">@color/blue_dark</item> 
    <item name="android:colorControlActivated">@color/blue_dark</item> 
    <item name="android:colorControlHighlight">@color/blue_dark</item> 
    <item name="android:colorButtonNormal">@color/blue</item> 

    <item name="android:textColor">@color/white</item> 
</style> 

Und Button ist blau in allen OS-Versionen , nice ... Jetzt möchte ich benutzerdefinierte MyButton extends Button erstellen, aber wenn ich in XML:

<com.package.name.MyButton 
    android:id="@+id/custom_id" 
    android:theme="@style/BlueButtonTheme" 
    ... 

Widget bleibt z. Android 4.1 (physisches Testgerät), aber weißen Text und ein bisschen blau, wenn gedrückt/ausgewählt. 5.0 und höher funktioniert. Meine Schaltfläche hat keine zusätzliche Logik (vorerst), nur Konstruktoren. Wie man Arbeitsmotiv für dieses benutzerdefinierte Widget erweitert Button?

Antwort

0

paar Stunden versucht und 10 Minuten nach oben Frage Entsendung Ich habe die richtige Antwort gefunden: extends AppCompatButton (von Unterstützung v7), nicht android.widget.Button

Verwandte Themen