ListView中的自定义复选框

时间:2015-04-20 11:56:52

标签: android android-layout listview checkbox android-listview

在我的应用程序中,我有ListView个自定义行,我想为每个项目添加自定义CheckBox,如下所示:

enter image description here

当我点击“编辑”时,我希望ListView转换为正确,并且在每个CheckBox行的左侧显示自定义ListView

即使没有看到某些行图标(如星形或箭头),是否可以将ListView保持在右侧?或者,如果我在右边翻译ListView,则会压缩该行,并且所有图标都可见?

我放了TranslateAnimation

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
    android:fromXDelta="0%"
    android:toXDelta="17%"
    android:duration="750" />

</set>

我已设法翻译ListView,但在2秒后它返回到初始位置...如何管理ListView之后TranslateAnimation维持的权限?< / p>

将左边的“离开”复选框放到行中并按下“编辑”按钮以使所有复选框都可见时更好吗?在这种情况下,每行是否像图像一样向右转换,或者它是否会被压缩并且所有图标都可见?

由于

修改

我的行xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:background="@color/backgr_greysoft" >

   <LinearLayout
      android:id="@+id/row_information"
      android:layout_width="fill_parent"
      android:layout_height="@dimen/rowDescargas_height"
      android:background="@drawable/button_file"
      android:descendantFocusability="blocksDescendants"
      android:layout_margin="@dimen/rowDescargas_marginLateral"
      android:orientation="horizontal"
      android:weightSum="1" >

      <ImageView
         android:id="@+id/icon"
         android:layout_width="0dp"
         android:layout_height="fill_parent"
         android:layout_gravity="center"
         android:layout_margin="@dimen/rowDescargas_marginIcono"
         android:layout_weight="0.25" />

      <LinearLayout
      ...
      </LinearLayout>

    </LinearLayout>

 </RelativeLayout>

2 个答案:

答案 0 :(得分:1)

是的,请设置gone之类的复选框。并设置为以下信息视图:

android:layout_width="0dp"
android:layout_weight="1"

此观点的家长应为LinearLayout android:orientation="horizontal"

答案 1 :(得分:0)

custom_checkbox.xml

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" 
          android:drawable="@xml/checked" /> 
    <item android:state_pressed="true"
          android:drawable="@xml/checked" /> 
    <item android:drawable="@xml/unchecked" /> 
</selector>

checked.xml

    <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#ff2665B4" android:endColor="#ff2665B4" android:angle="270"/>
    <stroke android:width="4px" android:color="#ffc0c0c0" />
    <size android:height="20dp" android:width="20dp"/>
</shape>

unchecked.xml

    <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#ffffff" android:endColor="#ffffff" android:angle="270"/>
    <stroke android:width="4px" android:color="#ffc0c0c0" />
    <size android:height="20dp" android:width="20dp"/>
</shape>

设置为checkBox

facilityCheck.setButtonDrawable(R.xml.custom_checkbox);


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:background="@color/backgr_greysoft" >

<CheckBox 
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/chk_facility"
           android:layout_alignParentLeft="true"
           />

      <ImageView
         android:id="@+id/icon"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:layout_gravity="center"
         android:layout_margin="@dimen/rowDescargas_marginIcono"
         android:layout_toRightOf="@+id/chk_facility" />
 </RelativeLayout>