Il codice seguente è per la visualizzazione di un pulsante personalizzato in Android. Sfortunatamente, tutti i valori di padding in quei diversi punti influenzano il modo in cui il pulsante viene visualizzato solo per Android 2.3, ma su Android 4.X non ha alcun effetto, cioè il padding è sempre lo stesso, indipendentemente da ciò che si imposta qui. Perché?Pulsante personalizzato con sfondo selezionabile: differenza di riempimento in Android 4 rispetto a Android 2.3
L'XML di layout:
<Button
android:id="@+id/sample_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_caption"
android:padding="6dp"
android:layout_marginBottom="6dp"
android:layout_marginRight="6dp"
style="@style/CustomButton"
android:textSize="16sp" />
Lo stile:
<style name="CustomButton">
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:padding">6dp</item>
<item name="android:background">@drawable/custom_button</item>
<item name="android:textColor">#ffffff</item>
<item name="android:gravity">center</item>
<item name="android:textStyle">bold</item>
</style>
Il drawable:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid
android:color="#60ff0000" />
<stroke
android:width="1dp"
android:color="#ffffff" />
<corners
android:radius="4dp" />
<padding
android:left="6dp"
android:top="6dp"
android:right="6dp"
android:bottom="6dp" />
</shape>
</item>
<item>
<shape>
<solid
android:color="#90ff0000" />
<stroke
android:width="1dp"
android:color="#ffffff" />
<corners
android:radius="4dp" />
<padding
android:left="6dp"
android:top="6dp"
android:right="6dp"
android:bottom="6dp" />
</shape>
</item>
</selector>
Quando ho impostato tutto Ts I valori di padding su un valore piccolo come 2, il pulsante è mostrato quasi senza un padding su Android 2.3.3 (probabilmente corretto) ma con un padding che è ancora molto grande su Android 4.X (probabilmente sbagliato). Qualcuno può vedere perché?
Felice di aiutare - la morale di questa storia è controllare sempre lo stile/codice su Github per gli indizi sul comportamento predefinito. –
Sì, ho capito;) – caw