android - getLastVisiblePosition 返回 -1

标签 android listview android-cursor

我的 ListView(使用 CursorAdapter)有问题。当我调用 getListView().getLastVisiblePosition() 时,我收到了 -1。这是一个问题,因为我的列表中填充了项目。此外,getListView().getFirstVisiblePosition() 始终返回 0,无论我滚动到列表的哪个位置。有什么想法吗?

跟startManagingCursor有关系

    @Override
    public void changeCursor(Cursor cursor) {
        super.changeCursor(cursor);
        MyActivity.this.mCursor = cursor;
        //startManagingCursor(MyActivity.this.mCursor);
    }

如果我注释掉 startManagingCursor,一切正常。我还尝试在更改 Cursor 之前添加 stopManagingCursor() 并且仍然遇到同样的问题。

最佳答案

这是因为当您调用 getListView().getLastVisiblePosition() 时, ListView 并未呈现。您可以像这样将调用添加到 View 的消息队列中:

listview.post(new Runnable() {
    public void run() {
        listview.getLastVisiblePosition();
    }
});

关于android - getLastVisiblePosition 返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036676/

相关文章:

java - 在没有定界符的Java中拆分字符串,做数学运算,然后重新组合

android - 如何使用 ant 构建带有外部库的 android 应用程序?

java - 错误 : javax. crypto.BadPaddingException:解密时填充 block 损坏

java - 如何更改 AndEngine 中的 TimerHandler 延迟?

java - 无法尝试实现从查询中获取随机结果到 Firestore

android - setOnItemClickListener() 不适用于自定义 ListView @ Android

android - 获取与 Android 查询的完整对话

android - Spinner 没有添加数据库中的所有主题

android-contentresolver - ContentResolver 查询文档不过滤选择

java - 字母顺序不适用于自定义 ListView