Ich habe ein seltsames Problem. Ich habe eine GridView mit 9 Items (0-8) (kann mehr/weniger sein). Wie das untere Bild zeigt, zeigt es die ersten 4 Elemente auf dem Bildschirm meines Geräts.GridView OnClick Listener funktioniert manchmal nicht
Ein grünes Häkchen hinzugefügt wird, wenn ein Element geklickt wird. Es funktioniert fast immer. Aber wenn ich nach unten scrolle und schnell klicke, wird der Click-Listener des 5. Elements (Item 4) nicht sofort ausgelöst. Es kann ein kleines Problem sein, aber für die Perspektive des Benutzers, manchmal kann es ein wenig ärgerlich sein. Bitte sag mir, wie kann ich es makellos machen? Hier ist der Code meiner 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;
}
Warum gehst du nicht für Recyclerview. Es funktioniert besser als das. –
Wie kann ich 2 Einträge in jeder Zeile wie gridView in recyclerView anzeigen? –
können Sie gridlayoutmanager verwenden –