Je veux supprimer l'ombre du bouton pour le rendre plus plat.
J'ai ceci en ce moment:
Mais je veux ceci:
Je veux supprimer l'ombre du bouton pour le rendre plus plat.
J'ai ceci en ce moment:
Mais je veux ceci:
Réponses:
Une autre alternative consiste à ajouter
style="?android:attr/borderlessButtonStyle"
à votre Button xml comme documenté ici http://developer.android.com/guide/topics/ui/controls/button.html
Un exemple serait
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"
style="?android:attr/borderlessButtonStyle" />
Une méthode plus simple consiste à ajouter cette balise à votre bouton:
android:stateListAnimator="@null"
bien qu'il nécessite un niveau d'API 21 ou plus.
android:stateListAnimator
attribut?
borderlessButtonStyle
style, ce qui vous donne plus de flexibilité.
essayez: android:stateListAnimator="@null"
Les boutons de conception de matériaux ajoutent au bouton xml:
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
L'utiliser comme arrière-plan de votre bouton peut vous aider, changez la couleur selon vos besoins
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape android:shape="rectangle">
<solid android:color="@color/app_theme_light" />
<padding
android:left="8dp"
android:top="4dp"
android:right="8dp"
android:bottom="4dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/app_theme_dark" />
<padding
android:left="8dp"
android:top="4dp"
android:right="8dp"
android:bottom="4dp" />
</shape>
</item>
</selector>
la réponse @ Alt-Cat fonctionne pour moi!
R.attr.borderlessButtonStyle ne contient pas d'ombre.
et le document de bouton est génial.
En outre, vous pouvez définir ce style sur votre bouton personnalisé, dans le deuxième constructeur.
public CustomButton(Context context, AttributeSet attrs) {
this(context, attrs, R.attr.borderlessButtonStyle);
}
Toutes les réponses ci-dessus sont excellentes, mais je suggérerai une autre option:
<style name="FlatButtonStyle" parent="Base.Widget.AppCompat.Button">
<item name="android:stateListAnimator">@null</item>
<!-- more style custom here -->
</style>
Au lieu d'un Button, vous pouvez utiliser un TextView et ajouter un écouteur de clic dans le code java.
C'est à dire
dans la mise en page d'activité xml:
<TextView
android:id="@+id/btn_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:text="@string/btn_text"
android:gravity="center"
android:textColor="@color/colorAccent"
android:fontFamily="sans-serif-medium"
android:textAllCaps="true" />
dans le fichier java d'activité:
TextView btnTextView = (TextView) findViewById(R.id.btn_text_view);
btnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handler code
}
});