【发布时间】:2017-04-02 09:50:24
【问题描述】:
我有一个加载篮球队比赛的 ListView 适配器。如果是应用程序所针对的团队,我将使用毕加索或资源加载我的图像。在我的第一个项目上,它似乎从网络加载了两个团队的图像。这是一个示例代码和图像。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null) {
view = LayoutInflater.from(context).inflate(layoutResource, parent, false);
}
Match programItem = getItem(position);
ImageView ourTeamLogo = (ImageView) view.findViewById(R.id.program_item_our_team_logo);
ImageView foeLogo = (ImageView) view.findViewById(R.id.program_item_foe_logo);
if (programItem.isHome()) {
ourTeamLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(context).
cancelRequest(foeLogo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(foeLogo);
}
else {
foeLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(context).
cancelRequest(ourTeamLogo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(ourTeamLogo);
}
return view;
}
查看第一个标记为红色的项目:
【问题讨论】:
-
你有什么问题。请解释更多。
-
第一个标记为红色的元素两侧不应有相同的图像。如果我向下和向上滚动,它会正确地回收视图。
-
您是否在代码中实现了 ViewHolder?
标签: android listview adapter picasso