我有以下问题,我正在编写一个重复http://www.rottentomatoes.com/mobile/网站的应用程序,如果你在网站上看到有“开放本周”,“顶盒办公室”和“还在剧院”的推文“所以我的问题是,我如何将这些自定义行添加到包含所有电影的ListView
这是我到目前为止所做的,请给我一些想法,这样看起来就像在网站上一样
答案 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这样的库。它不能作为您的移动网站示例,但它可能更好(例如,标题不会向上滚出屏幕)。