gpt4 book ai didi

ListView 中的 Android Laggy AlphabetIndexer

转载 作者:行者123 更新时间:2023-11-29 14:05:25 25 4
gpt4 key购买 nike

我有一个 CustomCursorAdapter 来制作漂亮的节标题。我从 ListView 行中删除了所有图像,但滚动仍然很慢。有人知道优化这个的方法吗?即使对于 2000 个联系人,在 Viber for Contacts 等应用程序上滚动也非常流畅。谢谢!

public View getView(int position, View convertView, ViewGroup parent) {
final int type = getItemViewType(position);
if (type == TYPE_HEADER) {
if (convertView == null) {
final LayoutInflater inflater = LayoutInflater.from(context);
convertView = inflater.inflate(R.layout.list_header, parent,
false);
}
((TextView) convertView.findViewById(R.id.list_header_title))
.setText((String) getSections()[getSectionForPosition(position)]);
return convertView;
} else {
View v = super.getView(
position
- sectionToOffset
.get(getSectionForPosition(position)) - 1,
convertView, parent);

int contactIdCol = c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);

String contactId_text = c.getString(contactIdCol);

boolean flag = db.isRegistered(contactId_text);

ImageView iv = (ImageView) v.findViewById(R.id.typeImage);
if (flag) {
iv.setImageResource(R.drawable.rocket);
} else {

iv.setMinimumHeight(Config.getIconSize(context));
iv.setMinimumWidth(Config.getIconSize(context));
iv.setImageDrawable(null);
}

ImageView iv1 = (ImageView) v.findViewById(R.id.test);

cl.displayImage(contactId_text, iv1);

return v;
}

}

为了进一步澄清,快速滚动是不稳定的,正常滚动似乎没问题。

最佳答案

每次调用“getView”时,您都在创建一个 ListView 项。获得性能的一个好方法是创建一个表示 View 项数据的静态“viewHolder”类。

例如

static class ViewHolder
{
ImageView icon;
TextView title;
}

在“getView”方法中,您可以创建一个 viewHolder 实例:

    if (convertView == null) {

final LayoutInflater inflater = LayoutInflater.from(context);

convertView = inflater.inflate(R.layout.list_header, parent, false);

holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.name = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(holder);

}

然后填写您持有人的资料:

if (item != null) {
holder.title.setText("ItemTitle");
holder.icon.setImageResource(R.drawable.rocket);
}

return convertView;

有关详细示例,另请参阅:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html

关于ListView 中的 Android Laggy AlphabetIndexer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7315673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com