一个按钮显示阴影,两个不显示:我不知道为什么

时间:2016-05-13 02:54:59

标签: android android-layout button android-button

我正在处理最奇怪的情况。我在布局文件中有三个按钮。其中一个投下阴影,两个没投影。即使我将android:elevation="10dp”添加到其中一个没有投射阴影的按钮上,它们仍然没有。这是xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:showIn="@layout/activity_look">

    <Button
        android:id="@+id/new_look"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@drawable/sel_ripple"
        android:backgroundTint="@color/colorAccent"
        android:text="New look"
        android:textColor="@color/white"
        android:textSize="@dimen/look_btn"/>

    <LinearLayout
        android:id="@+id/btn_holder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/16dp"
        android:layout_marginTop="@dimen/16dp"
        android:orientation="horizontal"
        android:padding="@dimen/8dp"
        android:visibility="gone"
        >

        <Button
            android:id="@+id/btn_yes"
            android:layout_width="0dp"
            android:layout_height="?attr/actionBarSize"
            android:layout_marginRight="@dimen/32dp"
            android:layout_weight="1"
            android:background="@drawable/sel_ripple"
            android:backgroundTint="@color/colorAccent"
            android:text="@string/yes"
            android:textColor="@color/white"
            android:textSize="@dimen/look_btn"
            />

        <Button
            android:id="@+id/btn_no"
            android:layout_width="0dp"
            android:layout_height="?attr/actionBarSize"
            android:layout_weight="1"
            android:background="@drawable/sel_ripple"
            android:backgroundTint="@color/colorAccent"
            android:text="@string/no"
            android:textColor="@color/white"
            android:textSize="@dimen/look_btn"
            />

    </LinearLayout>
…
</LinearLayout>

ban_yesban_np是没有阴影的。

1 个答案:

答案 0 :(得分:1)

将layout_marginBottom添加到布局内的按钮。这为按钮提供了显示其高程的空间

    <Button
        android:id="@+id/btn_yes"
        android:layout_width="0dp"
        android:layout_height="?attr/actionBarSize"
        android:layout_marginRight="@dimen/32dp"
        android:layout_weight="1"
        android:background="@drawable/sel_ripple"
        android:backgroundTint="@color/colorAccent"
        android:text="@string/yes"
        android:textColor="@color/white"
        android:textSize="@dimen/look_btn"
        android:layout_marginBottom="8dp"
        />

编辑:另一种方法是,在包装按钮的布局上,使用

<LinearLayout
    android:id="@+id/btn_holder"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/16dp"
    android:layout_marginTop="@dimen/16dp"
    android:orientation="horizontal"
    android:padding="@dimen/8dp"
    android:visibility="gone"
    android:clipToPadding="false"
    >

如果您不需要额外的保证金,这可能是更好的解决方案。