当我向视图添加附加自定义视图背景时,视图将变为不可见

时间:2018-11-23 14:34:53

标签: android-custom-view android-drawable android-constraintlayout

我正在尝试向按钮添加自定义背景,以使两个侧面都变圆。但是,当我附加或添加自定义视图背景时,该按钮变为不可见。这是我的xml代码:     

<android.support.constraint.ConstraintLayout
Have Some Code there 

<Button
    android:id="@+id/Top"
    android:layout_width="30dp"
    android:layout_height="34dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp"

    android:drawableTop="@drawable/baseline_remove_24"
    android:elevation="5dp"
    android:paddingTop="5dp"
    android:translationZ="5dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

<Button
    android:id="@+id/mid_button"
    android:layout_width="30dp"
    android:layout_height="23dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp"
    android:background="@drawable/button_mid"
    android:text="2"
    app:layout_constraintBottom_toBottomOf="@+id/bottom"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="@+id/Top" />

<Button
    android:id="@+id/bottom"
    android:layout_width="30dp"
    android:layout_height="34dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    android:background="@drawable/button_bottom_side"
    //background added there
    android:drawableBottom="@drawable/baseline_add_24"
    android:elevation="5dp"
    android:paddingBottom="5dp"
    android:translationZ="5dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="1.0" />


  </android.support.constraint.ConstraintLayout> 

可绘制文件夹中自定义视图的代码在这里:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:topLeftRadius="0dp"
    android:topRightRadius="0dp"
    android:bottomLeftRadius="50dp"
    android:bottomRightRadius="50dp" />
    <stroke android:width="1dp" android:color="#BABABA" />
    <solid android:color="#ffffff"/>
    padding android:left="20dp" android:top="20dp"
    android:right="20dp" android:bottom="20dp" />
   </shape>

图片如下: imagehttps://imghostr.com/BwBwqrc1

1 个答案:

答案 0 :(得分:0)

您需要删除drawablebottom或将层列表与其他项目一起使用android:left =“ 20dp” android:top =“ 20dp”等。 可绘制

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:topLeftRadius="0dp"
    android:topRightRadius="0dp"
    android:bottomLeftRadius="50dp"
    android:bottomRightRadius="50dp" />
<stroke android:width="1dp" android:color="#BABABA" />
<solid android:color="#ffffff"/>
</shape>

仅使用android:background pproperty,请为您工作。