Ich habe ein paar ähnliche Fragen gesehen, konnte aber mein Problem nicht lösen. Ich habe einen ListView mit einem ImageView und TextView. Ich benutze benutzerdefinierte Adapter und ViewHolder-Muster, aber meine Liste scrollt noch nicht glatt? Ich habe bereits Bilder in meinen Mipmap-Ordner heruntergeladen, also lade ich sie nicht direkt herunter. Ich weiß nicht, was ich noch tun kann, um schnelles Scrollen zu verbessern, wie in Quora oder einer anderen professionellen ListView App? Hier ist mein Adapter:ListView reibungslos in Android?
class customAdapter extends BaseAdapter {
ArrayList<Object> itemList;
Activity context;
public LayoutInflater inflater;
public customAdapter(Activity context,ArrayList<Object> itemList) {
super();
this.context = context;
this.itemList = itemList;
this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
private static class ViewHolder {
TextView text;
ImageView image;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.custom_row, parent, false);
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.image = (ImageView) convertView.findViewById(R.id.image);
convertView.setTag(holder);
} else
// View is being recycled, retrieve the viewHolder object from tag
holder = (ViewHolder) convertView.getTag();
ListItem items = (ListItem) itemList.get(position);
holder.text.setText(items.getText());
holder.image.setImageResource(items.getImg());
return convertView;
}
}
hier mein custom_row ist:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/image"
android:layout_marginTop="25dp"
android:layout_marginLeft="20dp"
android:src="@mipmap/austria" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/text"
android:layout_marginTop="45dp"
android:layout_marginLeft="30dp"
android:textColor="#ffffff"
android:textStyle="bold" />
Und hier ist die Auswahl von Bildern Ich verwende: http://img.freeflagicons.com/thumb/round_icon/austria/austria_640.png
Warum verwenden Sie 'ListView', wenn' RecyclerView' für eine Weile vorhanden ist? Zeigen Sie auch bitte Ihre 'custom_row.xml' und ein Beispiel von Bildern an, die Sie hier verwenden. – Divers
Ich bin relativ neu zu Android und versuche, meine erste App zu entwickeln. Also dachte ich, ListView ist eine gute Wahl. –
Hmm .. Ich sehe kein Problem auf der Adapterseite. Vielleicht sollten Sie genauer sein, wie Sie die Listview-Daten abrufen (nicht nur das Bild natürlich) und sie füllen –