我有以下问题,我正在编写一个重复http://www.rottentomatoes.com/mobile/网站的应用程序,如果您在该网站上查看,则有“本周开幕”,“顶级票房”和“也在剧院”等设计者,所以我的问题是,如何将此自定义行添加到保存所有电影的ListView
这是我到目前为止的内容,请向我提出一些想法,以便它看起来像网站上的一样
最佳答案
实现此目的的最简单方法是在项目视图的布局中包括分隔符。然后仅在视图映射到新类别的第一项时将它们设置为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之类的库。它不能作为您的移动网站示例使用,但可能更好(例如,标题不会向上滚动到屏幕之外)。