我有以下问题,我正在编写一个重复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之类的库。它不能作为您的移动网站示例使用,但可能更好(例如,标题不会向上滚动到屏幕之外)。

10-06 04:55