如何在Android中垂直滚动活动

时间:2011-03-22 15:39:05

标签: android scroll

我有以下布局:

<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。

这是正常的吗?如何添加垂直滚动?

谢谢和问候 角

3 个答案:

答案 0 :(得分:13)

<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>

答案 1 :(得分:0)

您的垂直滚动视图只能有一个子视图,这意味着您需要用另一个linerLayout包围您的图库视图和线性视图“图表”,然后应该用scrollView封装。

添加新视图时,可能需要刷新滚动视图的可绘制状态或使其无效,尝试类似的操作,以便相应地扩展。

答案 2 :(得分:0)

您必须扩展Gallery类,并在Draw过程中将画布旋转90度。然后只需要修改onTouch事件和其他一些内容。在此之后,布局会出现一些问题(因为它仍然希望在其参数中绘制布局)。所以我将它放在LinearLayout中并修复了布局大小。 所以最终的垂直画廊实际上是一个线性布局,里面有一个画廊。我已经实现了它,它运行得很好。您只需要将放入其中的所有内容旋转90度到另一个方向。权衡实际上是一点点,因此您可以扩展您想要放入其中的每个视图,并在绘制过程中将其旋转到另一个方向。