it-swarm.com.de

So entfernen Sie den Button-Schatten (Android)

Ich möchte den Schatten von der Schaltfläche entfernen, damit er flacher wirkt.

Ich habe das gerade jetzt: 

cancel button with shadow

Aber ich will das: 

cancel button without shadow

104
sousheel

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" />
285
Alt-Cat

Eine einfachere Methode ist das Hinzufügen dieses Tags zu Ihrer Schaltfläche:

Android:stateListAnimator="@null"

obwohl es API Level 21 oder mehr erfordert.

70
Alon Kogan

Ich benutze einen benutzerdefinierten Stil

<style name="MyButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless"></style>
38
郑松岚

Java

setStateListAnimator(null);

XML

Android:stateListAnimator="@null"
25
Michael

versuche: Android:stateListAnimator="@null"

20
ghui zhang

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>
6
dlohani

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
            }
        });
3
caitoo0o

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);
    }
3
Xiang Li

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>


1
Duc Thang

Schaltflächen zum Materialentwurf fügen der Schaltfläche xml hinzu: style="@style/Widget.MaterialComponents.Button.UnelevatedButton"

0
Efi G