Android复选框tappable区域没有增加

时间:2017-05-09 05:48:26

标签: android android-checkbox

我在列表视图中有一个复选框。点击复选框非常困难。  可点击的区域非常小,我在stackoverflow中检查了几个答案,但没有一个工作。请任何人都可以帮助如何增加android中复选框的可点击区域。

我的复选框的代码 -

 <CheckBox android:id="@+id/CheckBox"
 android:layout_width="0dip"
 android:layout_height="wrap_content" 
 android:layout_gravity="center_vertical|center_horizontal" 
 android:layout_weight="0.05"
 android:button="@drawable/white_checkbox"
 android:visibility="visible" />

4 个答案:

答案 0 :(得分:1)

你可以增加复选框大小,就像这个对我有用。

<CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:scaleX="1.80"
        android:scaleY="1.80" />

您需要更改scaleX和scaleY。

答案 1 :(得分:0)

根据评论中的建议添加填充以增加触摸区域

<CheckBox
    android:id="@+id/CheckBox"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|center_horizontal"
    android:layout_weight="0.05"
    android:button="@drawable/white_checkbox"
    android:padding="10dp"
    android:visibility="visible" />

Checkbox drawable将偏心,因为它右侧有一个文本字段。要有一个居中的drawable,你可以做以下的修改

android:button="@null"
android:drawableStart="@drawable/white_checkbox"

根据Material Design - Layout metrics and keylines

触摸目标应至少为48 x 48 dp。因此,相应地修改填充。

答案 2 :(得分:0)

仅添加填充导致我的复选框未居中。以下内容对我有用,但是我为复选框指定了固定大小(根据我的UI规范)。想法是在左侧而不是右侧添加填充(我在右侧添加了另一个标签)。我还在顶部和底部添加了填充,以使触摸目标更大,并且仍保持复选框居中。

<CheckBox
        android:id="@+id/checkbox"
        android:layout_width="30dp"
        android:layout_height="45dp"
        android:paddingLeft="15dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:button="@drawable/checkbox"
        android:checked="false"
        android:gravity="center"
       />

答案 3 :(得分:0)

我发现此解决方案很简单。 在checbox中,图像可向左绘制,方法是将其更改为drawableRight padding,将广告图像居中: 选择器的Drawalbe默认为左侧,更改为右侧可解决问题:

 <androidx.appcompat.widget.AppCompatCheckBox       
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:button="@null"
     android:drawableEnd="@drawable/custom_checkbox_selector"
     android:paddingStart="15dp"
     android:paddingTop="15dp"
     android:paddingEnd="15dp"
     android:paddingBottom="15dp"/>