Как вертикально прокручивать активность в Android

У меня есть следующий макет:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:isScrollContainer="true"> <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom"/> <LinearLayout android:id="@+id/chart" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 

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

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

Спасибо и привет. C.

Solutions Collecting From Web of "Как вертикально прокручивать активность в Android"

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:id="@+id/ScrlView" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/layoutForScroll" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="bottom"/> <LinearLayout android:id="@+id/chart" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> </ScrollView> </LinearLayout> 

В вашем вертикальном представлении прокрутки может быть только один ребенок, что означает, что вам нужно окутать вид галереи и линейную диаграмму «диаграмма» с помощью другого linerLayout, который затем должен быть окутан scrollView.

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

Вы должны расширить класс Gallery, а в процедуре рисования поверните холст на 90 градусов. Затем требуется несколько усыновлений, таких как изменение события onTouch и еще несколько. После этого будет несколько проблем с макетом (поскольку он все еще хочет рисовать макет в своих параметрах). Поэтому я положил его в LinearLayout и исправил размер макета. Таким образом, окончательная вертикальная галерея фактически представляет собой линейную компоновку, в которую помещена галерея. Я реализовал его, и он работает достаточно хорошо. Вам нужно будет только повернуть все, что вы положили в него на 90 градусов в другое направление. Компромисс действительно немного, поэтому вы можете расширить каждый вид, который хотите вставить в него, и просто повернуть его в другое направление в процедуре рисования.