Android: Как создать экран ListView с другим контентом для каждой строки
Вопрос
Я ищу создание экрана ListView, аналогичный экрану настройки звука (в встроенном встроенном приложении настроек, см. Изображение ниже), то есть я хочу, чтобы некоторые строки имеют текст + флажки, другие строки, чтобы иметь текст + «всплывающие» кнопки некоторые строки должны иметь только текст и т. Д.
Какой лучший способ сделать это?
Решение
Это не список 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>
Теперь этот список не содержит достаточно элементов для прокрутки, но если вы продолжите добавлять больше элементов к нему, он начнет прокрутить, как только он будет больше, чем экран.