- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 CursorAdapter
驱动的 ListView
。 ListView
附有 OnScrollListener
:
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
android.util.Log.e("===", "Scrolling: firstVisibleItem:" + firstVisibleItem + ", visibleItemCount:" + visibleItemCount + ", totalItemCount:" + totalItemCount);
//some logic here
}
});
当我向下滚动并到达列表底部时,新项目从网络中获取,添加到数据库中,CursorAdapter
的光标更新以刷新列表:
adapter.changeCursor(newCursor); //the query for the cursor is always the same, it never changes
然而,当我向上滚动并到达列表的中间左右时,有时 visibleItemCount
参数设置为远大于其通常值的值(40 与通常的 7-8)。随后是短暂的滞后,列表立即向后移动,靠近底部。
我的 CursorAdapter 看起来像这样:
class MyCursorAdapter extends CursorAdapter {
//...
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = layoutInflater.inflate(R.layout.my_layout, parent, false);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
populateView(view, cursor);
}
private void populateView(View view, Cursor cursor) {
//...
//this does not move the cursor, only reads from it
}
}
我做错了什么吗?
编辑
该问题实际上与 CursorAdapter 无关,我已将其替换为常规 BaseAdapter,但问题仍然存在。
最佳答案
问题是 ListView 项的根元素的 layout_height
等于 wrap_content
。当 View 中有很多项目时,这可能会导致 ListView (或适配器,我不知道)内部出现一些性能问题。将 layout_height
更改为精确值解决了问题(并使列表滚动更顺畅):
layout_height="30dp"
关于android - CursorAdapter 和滚动 : visibleItemCount becomes huge sporadically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411211/
我有一个带有 REST API 的简单 Web 应用程序,我想通过基于 token 的身份验证来保护它。这是我的安全过滤器: public class AuthFilter extends Abstr
将carrierwave 用于我们的上传器,我们每周都会从我们的生产应用程序中收到几个Excon 错误。例如: Excon::Errors::BadRequest: Expected(200) Ac
我有一个由 CursorAdapter 驱动的 ListView。 ListView 附有 OnScrollListener: listView.setOnScrollListener(new Abs
这是我在作为管理员的职业生涯中遇到的最令人费解的 MySQL 问题。任何精通 MySQL 的人都可以帮我解决这个问题吗?: 现在,我运行一个每秒多次查询我的 MySQL/InnoDB 表的应用程序。这
您好,感谢您的阅读。我正在尝试从 People 对象数组填充基于 NSTableView 的 View 。在我的设置中,我使用带有两个 xib 文件的 Storyboard(一个用于主表格 View
我们的应用使用 Firebase,该应用需要处理一些数据,然后在确定数据后发送一系列电子邮件。 现在,我通过 CRON(使用 pub/sub)触发单个处理程序来处理数据,然后将一系列消息发布到不同的
我有一个仅使用ExecutorService.newFixedThreadPool()的应用程序,并且一切都在我们的开发机器上运行良好(主要是多核Intel,在6核AMD上也运行良好)。但是,当我们在
java.lang.NoClassDefFoundError:Resin 服务器启动时偶尔发生 这是在 Resin 3.0.21 上在 Linux 机器上使用 Java 1.5... 我在 web.x
我有以下函数来压缩字节数组: func compress(input []byte) []byte { var buf bytes.Buffer compr := gz
我已经为调用 SQL Server 的 .net 代码编写了一些测试。看来使用 System.Transactions 是回滚对数据库所做的任何修改的绝佳选择。我知道一些纯粹主义者会建议我可能想要模拟
我在尝试返回 View 时使用 MVC 4 应用程序时遇到偶发错误。 在这种特殊情况下,我将要返回一个 View return View("Home", model);,这就是我获取消息的地方。当您不
我是一名优秀的程序员,十分优秀!