SLaks 2013-04-07 03:30 采纳率: 0%
浏览 1182

Android 中ListView 的 Alphabet Indexer滞后问题

在程序中使用CustomCursorAdapter来创建section headers。我从ListView 行中移除所有的图像,但是滚动还是相当的滞后。有谁知道用什么方法来优化吗?

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;
    }
}
  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2022-12-20 18:44
    关注

    ChatGPT尝试为您解答,仅供参考
    有几个方法可以优化 ListView 的性能:

    • 使用复用视图:您应该使用 convertView 来复用视图,这样可以减少内存占用并减少布局加载的时间。
    • 使用视图绑定:您可以使用视图绑定来优化视图创建的性能。视图绑定是一种将数据绑定到视图的技术,可以通过在每个视图中缓存绑定数据来减少 findViewById() 调用的次数。
    • 使用常量大小的视图:您应该使用常量大小的视图,这样 ListView 就可以使用缓存来更快地滚动。
    • 减少布局嵌套:尽量减少布局嵌套,因为这会导致布局的加载时间变慢。
    • 延迟加载图像:如果您使用图像,请考虑使用图像加载库(如 Glide 或 Picasso)来延迟加载图像,这样可以减少初始加载时间。

    您可以尝试使用上述方法来优化您的 CustomCursorAdapter。

    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题