【发布时间】:2017-12-26 03:32:13
【问题描述】:
我有一个奇怪的问题。我有一个包含 9 个项目(0-8)的 gridView(可以更多/更少)。如下图所示,它显示了我设备屏幕上的前 4 个项目。
每次单击项目时都会添加一个绿色刻度线。它几乎每次都能正常工作。但是每当我向下滚动并快速单击时,第 5 个(第 4 项)项的单击侦听器不会立即触发。这可能是一个小问题,但从用户的角度来看,有时可能会有点烦人。请告诉我怎样才能使它完美无瑕?这是我的 customAdapter 的代码:
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
View rowView = convertView;
Holder holder = null;
if (rowView == null) {
inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.single_griditem_gitfamount, null);
holder = new Holder();
holder.textViewGiftAmount = (TextView) rowView.findViewById(R.id.textViewGridAmount);
holder.imageViewGiftTick = (ImageView) rowView.findViewById(R.id.imageViewGridTick);
holder.cardViewGridAmount = (CardView) rowView.findViewById(R.id.cardViewGridAmount);
rowView.setTag(holder);
} else {
rowView = convertView;
holder = (Holder) rowView.getTag();
}
holder.textViewGiftAmount.setText("Item " + position);
if (position == clickedpos) {
holder.imageViewGiftTick.setVisibility(View.VISIBLE);
}
else{
holder.imageViewGiftTick.setVisibility(View.GONE);
}
// final Holder h = holder;
holder.cardViewGridAmount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickedpos = position;
notifyDataSetChanged();
}
});
return rowView;
}
【问题讨论】:
-
你为什么不去recyclerview。它比这更好。
-
如何在每行显示 2 个项目,如 recyclerView 中的 gridView ?
-
你可以使用gridlayoutmanager
-
@Uma Achanta 非常感谢您的帮助。最后一个问题,您确定切换到 recyclerview 会带来更好的性能吗?
标签: android gridview custom-adapter recycle