2015-09-14 84 views
0

我要添加填充到Android 复选框,它可以执行onClick事件。如何在Android CheckBox中添加可点击填充?

我尝试这样:

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

空白部不能执行的onClick事件。

+0

你可以分享你想要实现的设计形象,你现在得到的设计短片 – Nithinlal

回答

0

你可以做的是使用的LinearLayout内包含的复选框的onClick方法的LinearLayout使用您使用的是相同的代码复选框。更新您的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 
    } 
+0

哦,谢谢你!这是一种方式。 – ebnbin

+0

欢迎您... – Pankaj