Baseadapter медленный и отставание в прокрутке - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь создать просмотр списка с baseAdapter, который показывает ImageView с представлением текста для каждого элемента (изображения и текста для каждого элемента). Однако прокрутка списка слишком медленная и медленная.

class MyListAdapter:BaseAdapter {
var ListLocal = ArrayList<Food>()
var mCtx : Context?=null
constructor(List:ArrayList<Food>,mCtx:Context){
    this.ListLocal = List
    this.mCtx = mCtx
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): 
View {
    var convertView = convertView
    var holder: ViewHolder

    if (convertView == null) {
        holder= ViewHolder()

        var inflator = LayoutInflater.from(mCtx)
        convertView  = inflator.inflate(R.layout.food_type,null)
        holder.title= convertView.findViewById(R.id.txtT)
        holder.img = convertView.findViewById(R.id.PicT)

        convertView.tag = holder
    }
    else {
        holder = convertView.tag as ViewHolder

    }
    val item = ListLocal[position]
    holder.title!!.text = item.txtname
    holder.img!!.setImageResource(item.picc!!)
    return convertView!!

}

override fun getItem(position: Int): Any {
    return ListLocal[position]
}

override fun getItemId(position: Int): Long {
    return position.toLong()
}

override fun getCount(): Int {
    return ListLocal.size
}




 }

internal class ViewHolder {
    var title: TextView? = null
    var img: ImageView? = null
}

1 Ответ

0 голосов
/ 02 июля 2018

Если бы мне пришлось угадывать, эта строка является причиной ваших проблем: holder.img!!.setImageResource(item.picc!!)

Поскольку у вас проблемы с производительностью, вам следует использовать загрузчик изображений, например Glide или Picasso , а не напрямую вызывать setImageResource. Размер ваших растровых изображений / Drawables может серьезно ухудшить производительность прокрутки, если они не очень малы, так как они не кэшируются и будут декодированы в размере 1: 1, а не в размере целевого ImageView. Однако невозможно определить, является ли это вашей реальной проблемой производительности, не увидев больше ресурсов кода / изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...