Ich möchte den Schatten von der Schaltfläche entfernen, damit er flacher wirkt.
Ich habe das gerade jetzt:
Aber ich will das:
Eine weitere Alternative ist das Hinzufügen
style="?android:attr/borderlessButtonStyle"
zu Ihrem Button-XML-Dokument, wie hier dokumentiert http://developer.Android.com/guide/topics/ui/controls/button.html
Ein Beispiel wäre
<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" />
Eine einfachere Methode ist das Hinzufügen dieses Tags zu Ihrer Schaltfläche:
Android:stateListAnimator="@null"
obwohl es API Level 21 oder mehr erfordert.
Ich benutze einen benutzerdefinierten Stil
<style name="MyButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless"></style>
Java
setStateListAnimator(null);
XML
Android:stateListAnimator="@null"
versuche: Android:stateListAnimator="@null"
Wenn Sie dies als Hintergrund für Ihre Schaltfläche verwenden, kann es hilfreich sein, die Farbe an Ihre Bedürfnisse anzupassen
<?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>
Anstelle einer Schaltfläche können Sie eine Textansicht verwenden und im Java-Code einen Klicklistener hinzufügen.
Das heißt.
in der Aktivitätslayout-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" />
in der Aktivität Java-Datei:
TextView btnTextView = (TextView) findViewById(R.id.btn_text_view);
btnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handler code
}
});
die @ Alt-Cat-Antwort funktioniert für mich!
R.attr.borderlessButtonStyle enthält keinen Schatten.
und das Dokument der Schaltfläche ist großartig.
Sie können diesen Stil auch auf Ihrer benutzerdefinierten Schaltfläche im zweiten Konstruktor festlegen.
public CustomButton(Context context, AttributeSet attrs) {
this(context, attrs, R.attr.borderlessButtonStyle);
}
Alle obigen Antworten sind großartig, aber ich werde eine andere Option vorschlagen:
<style name="FlatButtonStyle" parent="Base.Widget.AppCompat.Button">
<item name="Android:stateListAnimator">@null</item>
<!-- more style custom here -->
</style>
Schaltflächen zum Materialentwurf fügen der Schaltfläche xml hinzu: style="@style/Widget.MaterialComponents.Button.UnelevatedButton"