0

我有一个按顺序显示这三件事的活动。

  1. ViewFlipper(用户可以向左/向右抛)
  2. 编辑文本
  3. ListView(列表视图可以有 n 行。我们将其限制为 100。每行都有异步下载的图像)

我希望该用户可以垂直滚动,所以我将三个项目放在单个相对布局中,并将其放入 scrollView

<RelativeLayout>
    <ScrollView>
        <RelativeLayout>

        </RelativeLayout>  
    </ScrollView>
</RelativeLayout>

这种方法的问题

ListView 和滚动视图一起使用是不好的用户体验。当列表将覆盖所有屏幕时,用户在滚动完整视图本身时会遇到问题。

我能想到的解决方案

  1. 禁用 ListView 上的滚动并让它显示所有项目(这是否足够好)
  2. 用户 addHeaderView(不知道怎么用)

第二种方法(我这样做并遇到了问题)。

而不是使用 ListView 动态添加 LinearLayout (替换列表行)。

这种方法的问题

很多丑陋的编码,因为没有适用于此类场景的复杂适配器。需要填充每个 LinearLayout,这会产生更多问题,因为我为每个 LinearLayout 加载了异步图像。

有什么更好的方法。有替补吗?

4

1 回答 1

0

不要将 aScrollView和 a一起使用,ListView正如. 你的方法的问题是性能:你需要创建n new ,而只是重用现有的。ListViewLinearLayoutViewsListView

我能想到的解决方案(如果无法使布局组件在不滚动的情况下适应屏幕),您可以禁用 ListView 中的滚动并添加“向上滚动”和“向下滚动”按钮,设置onClickListenerOnLongClickListener让用户控制滚动速度。虽然这可能不是最好的方法。考虑重新设计布局,使组件适合单个屏幕。由于布局组件不适合单个屏幕,这通常不是启用滚动的良好用户体验。例如,您可以向您添加更多页面并将您的ViewFlipper位置放在ListView那里

于 2013-03-25T13:46:14.413 回答