如何删除对话框上按钮的阴影?为什么显示阴影?

时间:2019-06-20 02:57:44

标签: android android-layout android-button

我创建了一个对话框,并且有一个按钮。

我想要不同样式的按钮。因此,我制作了此文件并将其应用于按钮的background属性。

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 个答案:

答案 0 :(得分:1)

style="?android:attr/borderlessButtonStyle"内使用Button 参考:https://developer.android.com/guide/topics/ui/controls/button.html#Borderless 或者,如果您不需要Button,请改用TextView

答案 1 :(得分:0)

尝试设置高程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>

这也可以通过在Resources \ values \ styles.xml中全局设置android:stateListAnimator =“ @ null”来解决:

<?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>

答案 2 :(得分:0)

在xml中将按钮上的stateListAnimator设置为=“ @null”。它将消除按钮上的阴影。