Интерфейс Android: таблица с несколькими горизонтальными страницами - PullRequest
1 голос
/ 16 июня 2011

Я пытаюсь реализовать пользовательский интерфейс, который содержит таблицу данных (динамически заполненную), отображаемую с помощью TableLayout. Я бы хотел, чтобы 4 столбца таблицы отображались по умолчанию, с возможностью горизонтальной прокрутки таблицы, чтобы открыть 4 (или более) дополнительных столбцов. Возможно ли это с использованием TableLayout в сочетании с горизонтальным / вертикальным ScrollView? Буду признателен за любой пример XML, демонстрирующий этот стиль.

Вот пример для уточнения:

Представление таблицы по умолчанию enter image description here

Вид после прокрутки вправо enter image description here

Ответы [ 3 ]

1 голос
/ 16 июня 2011

Вы должны быть в состоянии достичь этого, поместив свой TableLayout внутри HorizontalScrollView. Определите ширину ваших элементов внутри TableLayout

Примерно так (я не проверял это):

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/hsv1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

    <TableLayout android:layout_height="wrap_content" 
           android:gravity="center" 
           android:layout_width="wrap_content"  
           android:id="@+id/tl1" 
           android:scrollbars="horizontal">

        // Your other elements go here.

    </TableLayout>
</HorizontalScrollView>
0 голосов
/ 22 июня 2011

Я решил эту проблему, используя ViewFlipper. Я довольно удивлен, что никто не упомянул об этом раньше.

Я изменил свой XML так, чтобы он выглядел так:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/hsv1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content">
        <ViewFlipper android:id="@+id/dataTableFlipper"
                 android:layout_width="fill_parent" android:layout_height="fill_parent">

                <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:layout_width="fill_parent" 
                            android:layout_height="wrap_content"
                            android:id="@+id/dataTable"
                            android:stretchColumns="*">
                </TableLayout>
                <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:layout_width="fill_parent" 
                            android:layout_height="wrap_content"
                            android:id="@+id/dataTable2"
                            android:stretchColumns="*">
                </TableLayout>
        </ViewFlipper>
</ScrollView>

Таким образом, я могу управлять каждой страницей таблицы как отдельной TableLayouts.

Объявление ViewFlipper программно позволило мне использовать ViewFlipper.showNext() для чередования двух таблиц. Работает как шарм!

0 голосов
/ 16 июня 2011

Я не уверен, что это напрямую решит вашу проблему, но взгляните на android-viewflow на github. https://github.com/pakerfeldt/android-viewflow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...