【问题标题】:What is the best way to put a ListView inside HorizontalScrollView?将 ListView 放入 Horizo​​ntalScrollView 的最佳方法是什么?
【发布时间】:2013-01-15 18:59:43
【问题描述】:

我正在尝试制作一个日历应用程序,并希望在 ListView 上列出一天中的所有事件并水平滚动这些天。当我向右滚动时,ListView 应该重新绘制明天的事件。我的所有事件都在一个 sqllite 数据库中。

这就是我的 XML 的样子:

<?xml version="1.0" encoding="UTF-8"?>       

<HorizontalScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" 
    android:scrollbars="none">

    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <ListView android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

    </LinearLayout>

</HorizontalScrollView>

如何填充 ListView 并让它在每次滚动时获取新数据?

【问题讨论】:

    标签: java android listview horizontalscrollview


    【解决方案1】:

    方法错误,不能将 ListView 嵌套在 ScrollView 中。使用 ViewPager 来分页。

    【讨论】:

    • 作者问的是Horizo​​ntalScrollView,因为滚动轴是垂直的,所以没有冲突。
    • 这是一个通用的系统设计,不能在ScrollView中使用ListView,如果是Horizo​​ntalScrollView也没关系,因为它是从ScrollView类派生的
    • 同意 OP。理论上,您可以覆盖 onInterceptTouchEvent 以强制 Horizo​​ntScrollView 仅处理水平滚动手势(假设 Horizo​​ntalScrollView 还没有这样做)。但 ViewPager 开箱即用,并提供其他好处(例如固定滚动)。
    • 如果你想使用上面评论中提到的想法,我会推荐 GestureDetector
    • A HorizontalScrollView 不是从 ScrollView 派生的。 (我应该说我同意问题的作者不应该使用 HSV,但“不能”是不准确的。)
    【解决方案2】:

    我在 API 15 和 18 的 Horizo​​ntalScrollView 中使用了 ListView。这两个视图似乎都可以识别它们所需的手势,所以它可以工作。然而,我注意到的一件事是 ListView 的宽度仅与列表中的第一行一样宽。如果后续行更宽,则“额外”(超过第 1 行的长度)将不可见,但您可以滚动查看剩余的文本等...我没有注意到任何其他不良影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多