Android: как создать экран просмотра списка с различным содержанием для каждой строки - PullRequest
0 голосов
/ 18 октября 2010

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

Как лучше всего это сделать?

alt text

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

Как указывает Фальмарри, это не 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>

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

1 голос
/ 18 октября 2010

Это не просмотр списка, это PreferenceActivity.Взгляните на класс PrefereceActivity

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

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

...