- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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;
有关详细示例,另请参阅:
关于ListView 中的 Android Laggy AlphabetIndexer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7315673/
在 Android 中,如何使用带有数字的 AlphabetIndexer?下面的代码似乎不起作用 AlphabetIndexer alphabetIndexer = new
我正在尝试实现 AlphabetIndexer 来帮助用户滚动浏览我的列表,但是当我运行该应用程序时,列表上没有显示任何内容。谁能告诉我为什么? 注意:我没有在 Adapter 的构造函数中实例化 A
我正在为自定义 ListView 使用 AlphabetIndexer、SectionIndexer、自定义 CursorAdapter。以下是相同的代码。但是我在滚动列表时看不到字母表。我还尝试了以
我正在尝试使用 AlphabetIndexer 实现快速滚动条,但是当光标发生变化时,它不会刷新索引缓存。在我的 CursorAdapter 构造函数中,我调用了 setCursor(cursor)
我有一个 ListView,其中 fastScrollAlwaysVisible 和 fastScrollEnabled 都设置为 true。在对我的 Adapter 和一个 AlphabetInde
我想在 GridView 中实现 SecionIndexer,但我遇到了很多麻烦。我必须更改现有项目的代码才能添加它。根据我的研究,我认为如果使用光标应该是可能的。 有没有人有我可以从中看到如何实现它
我知道AlphabetIndexer Android 中的类使用 ASCII ordering订购列表中的项目。这意味着如果我有以小写字母“a”开头的项目,它将在大写字母“Z”之后排序,这似乎不太合逻
我有一个 CustomCursorAdapter 来制作漂亮的节标题。我从 ListView 行中删除了所有图像,但滚动仍然很慢。有人知道优化这个的方法吗?即使对于 2000 个联系人,在 Viber
我正在尝试用这样的自定义适配器实现 AlphabetIndexer AlphabetIndexer with Custom Adapter 我的类 ContactsCursorAdapter 扩展了
我是一名优秀的程序员,十分优秀!