2

В моем приложении у меня есть ListView с настраиваемыми строк, и я хочу, чтобы добавить пользовательский CheckBox для каждого элемента, например:Пользовательские CheckBox в ListView

enter image description here

Когда я нажимаю на «EDIT» Я хочу 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 ?

Лучше ли поставить галочку как «ушел» слева в строку и когда кнопка «ИЗМЕНИТЬ» нажата, чтобы поставить все флажки как видимые? В этом случае: Каждая строка преобразуется вправо, как изображение, или будет сжата, и все значки будут видны?

Благодаря

EDIT:

Моя строка 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> 
+0

Не совсем то, что вы ищете, но [это] (https://github.com/baoyongzhang/SwipeMenuListView) должно дать вам четкое представление – Skynet

ответ

1

Да, поставьте флажок, как gone. И установить на ваш взгляд информации следующие:

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

Родитель этой точки зрения должно быть LinearLayout с android:orientation="horizontal".

+0

Но, какой ширины и веса я должен поставить для CheckBox ? Потому что, если я положил вес = 1 для другого представления ... – KryNaC

+0

Для 'CheckBox' установите' android: layout_width = "wrap_content" '. – Ircover

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> 

множество в -с heckBox

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> 
+0

Я получаю «NullPointerException» с последней строкой ... (3 файла помещаются в папку «res/xml») – KryNaC

+0

объектCheck - это ваш флажок, который находится в XML-файле строки списка listview. –

+0

Я уже это знаю, у меня были проблемы с классом адаптера. Знаете ли вы, какой вес я должен поставить на checkBox? Или не ставить вес? – KryNaC