Android: Как создать экран ListView с другим контентом для каждой строки

StackOverflow https://stackoverflow.com/questions/3962722

  •  09-10-2019
  •  | 
  •  

Вопрос

Я ищу создание экрана ListView, аналогичный экрану настройки звука (в встроенном встроенном приложении настроек, см. Изображение ниже), то есть я хочу, чтобы некоторые строки имеют текст + флажки, другие строки, чтобы иметь текст + «всплывающие» кнопки некоторые строки должны иметь только текст и т. Д.

Какой лучший способ сделать это?

alt text

Это было полезно?

Решение

Это не список ListView, это PreferenceActivity. Отказ Посмотрите на класс PredeceCeactivity

http://developer.android.com/reference/android/preference/preferenceActivity.html.

Если вы действительно хотите иметь другой вид для каждой строки в ListView (который очень действителен), вам придется создать свой собственный класс, который расширяется BaseAdapter. Отказ в getView() Метод, просто верните представление, которое вы хотите показать. Есть много примеров в Интернете.

Другие советы

Как указал Фальмарри, это не ListView но а PreferenceActivity.

Если вы не можете работать с PreferenceActivity, самый простой способ сделать список различных предметов, которые будут прокручивать, если они выруются на экране, это разместить ScrollView вокруг А. LinearLayout. Отказ Вы можете прочитать больше об этом здесь: http://developer.android.com/reference/android/widget/scrollview.html.

Ниже очень простой пример:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView
                android:text="Some text label here" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
            <Button
                android:text="A button to click"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
            />
        </RelativeLayout>
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Perhaps an input field here"
        />
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView
                android:text="Some more text, and a check box" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            />
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
            />
        </RelativeLayout>
    </LinearLayout>
</ScrollView>

Теперь этот список не содержит достаточно элементов для прокрутки, но если вы продолжите добавлять больше элементов к нему, он начнет прокрутить, как только он будет больше, чем экран.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top