Как я могу сделать мой макет прокрутки по горизонтали и вертикали?


Я использую TableLayout. Мне нужно иметь как горизонтальную, так и вертикальную прокрутку для этого макета. По умолчанию я могу получить вертикальную прокрутку в представлении, но горизонтальная прокрутка не работает.

Я использую Android SDK 1.5 r3. Я уже пробовал android:scrollbars="horizontal".

Я читал на некоторых форумах, что в обновлении cupcake возможна горизонтальная прокрутка.

Как я могу сделать мой макет прокрутки в обоих направлениях?

4 51

4 ответа:

я смог найти простой способ добиться обоих прокрутки поведения.

вот xml для него:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:scrollbars="vertical">

    <HorizontalScrollView 
        android:layout_width="320px" android:layout_height="fill_parent">

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/linlay" android:layout_width="320px"
            android:layout_height="fill_parent" android:stretchColumns="1"
            android:background="#000000"/>

    </HorizontalScrollView>

</ScrollView>

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

 <HorizontalScrollView
            android:id="@+id/scrollView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent">

          <ScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                //xml code
          </ScrollView>
  </HorizontalScrollView>

в этой статье Scrollview вертикальный и горизонтальный в android Они говорят о возможном решении, цитируя:

Мэтт Кларк построил пользовательский вид на основе источника Android, и он, кажется, работает отлично:http://blog.gorges.us/2010/06/android-two-dimensional-scrollview

обратите внимание, что класс на этой странице имеет ошибку вычисления горизонтальной ширины представления. Исправление Мануэля Хилти находится в комментариях:

решение: Заменить инструкцию в строке 808 следующим текстом:

final int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.leftMargin + lp.rightMargin, MeasureSpec.UNSPECIFIED);

используйте этот:

android:scrollbarAlwaysDrawHorizontalTrack="true"

пример:

<Gallery android:id="@+id/gallery"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbarAlwaysDrawHorizontalTrack="true" />