什么应该是设计方法 - ListView与LinearLayout

时间:2013-03-25 13:33:08

标签: android

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

  1. ViewFlipper(用户可以向左/向右扔)
  2. EditText
  3. ListView(列表视图可以有n行。允许将其限制为100.每行都有异步下载的图像)
  4. 我希望用户可以垂直滚动,所以我将上面的三个项目放在单个相对布局中,然后放入scrollView

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

    此方法存在问题

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

    我能想到的解决方案

    1. 禁用ListView上的滚动并让它显示所有项目(这是否足够)
    2. 用户addHeaderView(不知道如何使用它)
    3. 第二种方法(我做了并遇到了问题)。

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

      此方法存在问题

      很多丑陋的编码,因为没有针对此类场景的复杂适配器。需要填充每个LinearLayout并且它会产生更多问题,因为我为每个LinearLayout都有异步Image加载。

      什么是更好的方法。任何替补?

1 个答案:

答案 0 :(得分:0)

不要同时使用ScrollViewListView,这是{em> Romain Guy (ListView的创建者)提到的一件坏事。您LinearLayout方法的问题在于性能:您需要创建 n 新的Views,而ListView只是重用现有的。{/ p>

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