Как я могу удалить тень кнопки в диалоге?Почему тень показана? - PullRequest
0 голосов
/ 20 июня 2019

Я создал диалог и есть кнопка.

Я хочу другой стиль кнопки. Поэтому я сделал этот файл и применил к фону атрибут кнопки.

enter image description here enter image description here

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/my_pink_color">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/btn_line_border_dialogue"></item>
</ripple>

Я не знаю, почему у кнопки есть тень. У него есть две кнопки. И вторая кнопка не имеет ничего. Когда я удаляю вторую кнопку, тень кажется исчезла.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:clickable="true"
        android:background="@drawable/btn_ripple"
        android:text="Close"
        android:textAllCaps="false"
        android:textColor="@color/my_text_color"
        android:textSize="17sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/btn_close2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_ripple"
        android:clickable="true"
        android:text="Don't show this in 24hours"
        android:textAllCaps="false"
        android:textColor="@color/my_text_color"
        android:textSize="14sp"
        android:textStyle="bold" />
</LinearLayout>

Когда я просто применяю btn_line_border_dialogue.xml без пульсации. Это то же самое.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/my_yellow" />
    <stroke
        android:width="1dp"
        android:color="@color/my_pink" />
</shape>

Как мне убрать этот эффект?

Ответы [ 3 ]

1 голос
/ 20 июня 2019

Используйте style="?android:attr/borderlessButtonStyle" внутри вашего Button см .: https://developer.android.com/guide/topics/ui/controls/button.html#Borderless Или, если вам не нужен Button, в частности, используйте TextView вместо

0 голосов
/ 20 июня 2019

установите stateListAnimator на кнопке как = "@null" в xml. Это удалит тень от кнопки.

0 голосов
/ 20 июня 2019

попробуйте установить высоту t0 0 dp или вы можете использовать TextView или Layout вместо кнопки.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <TextView
        android:id="@+id/btn_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:clickable="true"
        android:background="@drawable/btn_ripple"
        android:text="Close"
        android:textAllCaps="false"
        android:textColor="@color/my_text_color"
        android:textSize="17sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/btn_close2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_ripple"
        android:clickable="true"
        android:text="Don't show this in 24hours"
        android:textAllCaps="false"
        android:textColor="@color/my_text_color"
        android:textSize="14sp"
        android:textStyle="bold" />
</LinearLayout>

Это также можно исправить, установив android: stateListAnimator = "@ null" глобально в Resources \ values ​​\ styles.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="AppTheme" parent="AppTheme.Base">
    </style>
    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:buttonStyle">@style/NoShadowButton</item>
    </style>
    <style name="NoShadowButton" parent="android:style/Widget.Button">
        <item name="android:stateListAnimator">@null</item>
    </style>
</resources>
...