Раздувание ListView с разным количеством ImageViews в каждой строке - PullRequest
0 голосов
/ 12 мая 2011

Я начинаю работать с Android LayoutInflater и мне нужна помощь.

У меня есть ListActivity, в котором используется макет, определенный в следующем XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
</LinearLayout>

Этот ListViewзаполнен ArrayAdapter, который генерирует каждую строку, надувая другой XML, как это:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        >
        <TextView
            android:id="@+id/item_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:textSize="20dip"
            android:textColor="#FFF"
        />
        <ImageView
            android:id="@+id/item_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_marginRight="6dip"
            android:src="@drawable/example_icon"
        />
    </LinearLayout>
</LinearLayout>

Это работает нормально, но теперь я хочу показать переменное количество значков для каждого элемента (так, каждая строкаListView может иметь другое количество ImageViews в TextView).

Может быть, мне нужно определить другой XML для списка значков и каким-то образом построить ListView из вложенных макетов?Я не знаю, как лучше это сделать.Любые предложения?

Спасибо!

Редактировать: Это пример того, что я пытаюсь сделать: http://tinypic.com/r/2s9yniw/7

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

В отдельной строке вы можете поместить изображения под текстовое представление этой строки, и когда вам не нужно их показывать, вы можете скрыть их, установив видимость на GONE .

0 голосов
/ 12 мая 2011

Вам просто нужно будет включить несколько изображений в макет XML для каждой строки и установить их видимость на GONE, когда они вам больше не нужны (вы можете поместить изображение в один файл XML макета изатем include это 3 раза в файле макета строки).

Вы можете сделать это, надувая XML-файл макета изображения столько раз, сколько вам нужно для каждой строки, а затем добавив его в представление строк.(но это создает проблемы с утилизацией, если вы добавили только 2 изображения в первый раз, а в следующем ряду нужно 3);но из того, что я помню, вы не можете добавить раздутый контент в строку Адаптера или получите исключение (не совсем уверен, поэтому попробуйте в случае сомнений).

...