使用动态填充的列表视图时,滚动条不会滚动

时间:2011-12-13 09:12:09

标签: android listview scrollview

我无法滚动包含列表视图的滚动视图,并且在从Web服务获取数据时动态填充。

我可以通过鼠标滚轮在模拟器中滚动,但在avtual设备中我无法滚动列表。

scrollview的属性是

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginTop="10dp"
    android:layout_weight="0.6"
    android:fillViewport="true"
    android:orientation="vertical"
    android:padding="6.0dip"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollbarFadeDuration="5000"
    android:scrollbarSize="20dp"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:orientation="vertical"
        android:padding="2dp" >

        <ListView
            android:id="@+id/listbox_list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="599.84"
            android:minHeight="250dp" >
        </ListView>

    </LinearLayout>

</ScrollView>

请尽快帮助我

3 个答案:

答案 0 :(得分:1)

只需查看元素的layout_width和layout_height,就​​可以清楚地看到您的滚动视图不会滚动。除非你有一个固定的高度列表视图,否则永远不要在滚动视图中放置一个列表视图(或者在这种情况下,在一个位于滚动视图内的布局中的列表视图)。

答案 1 :(得分:0)

我现在没有任何链接支持这一点,但这是不可能的,也是一个众所周知的“问题”。如果你谷歌一点,或在这里搜索,你会发现许多主题,包括这个。

在大多数情况下,如果您在同一方向上的另一个滚动视图中滚动视图,则会出现问题。请考虑以下示例:

  • ScrollView中有两个列表。
  • 两个列表都只有一个屏幕高。

如何向下滚动到第二个列表?
滚动时,如果您正在滚动列表或容器,您的布局将如何知道? 这基本上是问题的原因,唯一正式的解决方案就是它应该是,并且不会有解决方案。通常只有ListView或ScrollView就足够了,但我遇到了必须在滚动视图中有一个列表视图的情况(在我的情况下,客户端需要在滚动页面中使用类似iPhone的datepinner )。
我通过使用FrameLayout解决了它,它包含一个自定义ScrollView和一个ListView。然后在自定义ScrollView的代码中,我在onScroll方法中添加了一行,用于更新ListView的上边距,以便在用户滚动时向上或向下psuh。令人惊讶的是它有效。

请注意:请记住:

  • ListView处理自己的滚动。如果你需要的只是一个滚动 列表,您不需要ScrollView。
  • 如果您需要包含按钮或其他列表和空格的布局 视图,考虑创建您的布局,以便列表仅涵盖 足够的空间,您可以适应您下面/上面的其他视图 滚动。

答案 2 :(得分:0)

在线性布局中添加以下内容

<强>机器人:滚动条= “垂直”         机器人:scrollbarAlwaysDrawVerticalTrack = “真”