结合列表和非列表视图的最佳实践,例如Market

时间:2010-01-10 07:35:42

标签: android listview scrollview

我正在尝试解决一个看似很多Android开发人员的问题,即如何在一个可滚动的大窗格中散布带有非列表数据的列表。

我想到的模型是市场中个人应用的屏幕。你有一个很大的描述,一些懒惰加载的评论列表,然后是一些做不同事情的单个项目,比如访问开发人员的网页,调用它们等等。然后在它们之间,都是很好的部分标题。< / p>

模仿这种方法似乎非常困难。我已经阅读了足够的SO答案和邮件列表帖子,知道不要将ListView放在ScrollView中,但我想要相同的效果,而不使用具有非常复杂的页眉和页脚视图的addHeader()和addFooter()。

我尝试使用我自己存储视图的LinearLayout,但是我无法获得默认列表项所具有的令人愉快的点击效果(橙色背景,白色用于长按等)。

我该怎么办?

3 个答案:

答案 0 :(得分:4)

查看我的MergeAdapter,它旨在处理这样的情况。

答案 1 :(得分:2)

为什么不使用标题?这很简单。在单独的布局中定义标题内容。您的活动布局除了底部的ListView之外什么都没有。没有滚动视图!

然后致电

View headerView = getLayoutInflater().inflate(R.layout.header_layout, null);
ListView listView = (ListView) findViewById(R.id.my_list_view);
listView.addHeaderView(headerView, null, false);   

调用addHeaderView的形式以便禁用标头至关重要。否则,它可以被选中,看起来很奇怪。

答案 2 :(得分:0)

Mark的例子可行。基本上你需要一个具有不同视图类型的适配器另一个很好的例子是 http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/ 这可能比Mark更好,因为你想要分隔符并将事物组合在一起。