Ich möchte den Schatten von der Schaltfläche entfernen, damit er flacher erscheint.
Ich habe das gerade:
Aber ich will das:
Ich möchte den Schatten von der Schaltfläche entfernen, damit er flacher erscheint.
Ich habe das gerade:
Aber ich will das:
Antworten:
Eine andere Alternative ist das Hinzufügen
style="?android:attr/borderlessButtonStyle"
zu Ihrer Button-XML, 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 Möglichkeit besteht darin, dieses Tag zu Ihrer Schaltfläche hinzuzufügen:
android:stateListAnimator="@null"
obwohl es API Level 21 oder mehr erfordert ..
android:stateListAnimator
Attributs?
borderlessButtonStyle
Stil erben muss , wodurch Sie mehr Flexibilität erhalten.
Versuchen : android:stateListAnimator="@null"
Schaltflächen zum Entwerfen von Material zur Schaltfläche xml hinzufügen:
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
Wenn Sie dies als Hintergrund für Ihre Schaltfläche verwenden, können Sie die Farbe an Ihre Bedürfnisse anpassen
<?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>
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>
Anstelle einer Schaltfläche können Sie eine Textansicht verwenden und dem Java-Code einen Klick-Listener hinzufügen.
Dh
im 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äts-Java-Datei:
TextView btnTextView = (TextView) findViewById(R.id.btn_text_view);
btnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handler code
}
});