【问题标题】:How to add a clickable padding in Android CheckBox?如何在 Android CheckBox 中添加可点击的填充?
【发布时间】:2015-09-14 14:36:19
【问题描述】:

我想在 Android CheckBox 中添加 paddings,它可以执行 onClick 事件。

我试过了:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:minHeight="80dp"
    android:gravity="center_vertical">

    <CheckBox
        android:id="@+id/checked"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="28dp"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

还有这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:minHeight="80dp"
    android:gravity="center_vertical">

    <CheckBox
        android:id="@+id/checked"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:gravity="center"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

但两次都没有居中!右内边距有双倍宽度,而左内边距没有宽度。

如果我使用这样的边距:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:minHeight="80dp"
    android:gravity="center_vertical">

    <CheckBox
        android:id="@+id/checked"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="28dp"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

margin部分不能执行onClick事件。

【问题讨论】:

  • 你能分享一下你想要实现的设计的图片和你现在得到的设计的短片

标签: android onclick padding android-checkbox


【解决方案1】:

你可以做的是使用一个 LinearLayout 里面包含 CheckBoxonClick 方法 LinearLayout 使用Checkbox 使用的代码相同。将您的 XML 更新为以下代码:

XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:minHeight="80dp"
    android:gravity="center_vertical">

    <LinearLayout
        android:id="@+id/layout_checked"
        android:layout_width="100dp"
        android:layout_height="100dp">
      <CheckBox
            android:id="@+id/checked"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:gravity="center"/>
    </LinearLayout>

<TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

Java 代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    .
    .
    .
    LinearLayout layoutChecked = (LinearLayout)findViewById(R.id.layout_checked);
    CheckBox checkBox = (CheckBox)findViewById(R.id.checked);

    layoutChecked..setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    onClickedCheckBox();
                }
            });

    checkBox.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    onClickedCheckBox();
                }
            });
    }
     public void onClickedCheckBox(){
      //Do whatever you want to do here
    }

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多