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
?