我有一个带有不同样式项目的列表视图,带有日期的标题样式(黑色)和该日期项目的项目窗框。
现在我向下滚动信息不在正确的项目中。有时标题会出现在黑条中,有时日期会出现在项目阶梯中。
图像也不正确。我在我正在构建的应用程序中使用这样的listview适配器,但从未有过这个,这是我第一次在单个列表视图中使用不同的布局。
我使用Aquery进行图像加载。
请指出我的错误。
Greathings
binder java
request()
答案 0 :(得分:0)
请覆盖BaseAdapter的getItemViewType()
并尝试以下代码。
public int getItemViewType (int position) {
if(TvGids.get(position).get("header").equals("true")){
return 0;
}else{
return 1;
}
}
答案 1 :(得分:0)
现在你的ListView不知道标题和普通项之间的区别。它认为你的所有物品都是一样的。当您实际开始回收视图时,这会导致问题,因为您将获得与convertView
错误的行布局。
您需要执行以下任一策略:
使用getItemViewType()
和getViewTypeCount()
。使用这些方法ListView
现在会知道有不同的项目类型并且会正确回收它们,但它要求getCount()
返回项目数量PLUS标题数量(我不确定您当前的实现是否这样做)。我会推荐给你一个名为The World of ListView的视频,它会更详细地解释这一点。
将标题放在常规项目的布局XML中,并仅使用此布局。默认情况下,标题可见性GONE
。如果项目应显示标题,请将标题可见性设置为VISIBLE
。这对所有列表项使用一种布局,代价是在视图层次结构中有一些额外的视图。
基本上,#1正确地实现了两种不同类型的列表项,而#2则通过使列表项实际上是相同的项来执行相反的操作。
还有另一种选择:使用RecyclerView
并使用ItemDecoration
来实现标头。我会让你自己探索这个。