ListView中的自定义行

时间:2014-06-12 02:20:48

标签: java android listview

我有以下问题,我正在编写一个重复http://www.rottentomatoes.com/mobile/网站的应用程序,如果你在网站上看到有“开放本周”,“顶盒办公室”和“还在剧院”的推文“所以我的问题是,我如何将这些自定义行添加到包含所有电影的ListView

这是我到目前为止所做的,请给我一些想法,这样看起来就像在网站上一样 enter image description here

1 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法是在项目视图的布局中包含分隔符。然后,只有当视图映射到新类别的第一个项目时,才将它们设为VISIBLE,否则将它们保留为GONE

示例(半伪代码):

首先,使您的项目布局如下:

<LinearLayout orientation=vertical>
    <TextView id=divider>
    <your original item layout>
</LinearLayhout>

然后,在适配器的getView()

Film item = getItem(position);
boolean needsDivider = (position == 0 || getItem(position - 1).filmCategory != film.filmCategory);
if (needsDivider)
{
    dividerView.setVisibility(View.VISIBLE);
    dividerView.setText(getFilmCategoryName(film.filmCategory));
}
else
    dividerView.setVisibility(View.GONE);

更奇特的解决方案是使用像StickyListHeaders这样的库。它不能作为您的移动网站示例,但它可能更好(例如,标题不会向上滚出屏幕)。