Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 在光标加载后将ListView滚动到某个位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有ListView的片段,我希望ListView在保存和恢复片段时保持其滚动位置.通常这很简单,只需在保存时调用ListView.getFirstVisiblePosition(),并在恢复时调用ListView.setSELEction()(ListView.setSELEctionFromTop(),如果你想获得幻想).

但是,我正在使用加载器,并且在活动开始时我的ListView没有完全填充.如果我在onActivityCreated()期间使用setSELEction(),则列表将无法滚动到任何内容,并且将忽略该调用.

我现在通过在将来的某个时间发布滚动来解决这个问题,但这绝对不是理想的.我希望它能在数据完成加载时向右滚动.我差不多这样做了,但是swapcursor()没有刷新,它只是为将来安排了一个失效.

@Override
public void onLoadFinished(Loader<cursor> loader,cursor data) {
    mAdapter.swapcursor(data);
    if (savedScrollPosition != null) {
        Log.d(tag,"loaded and scrolling to " + savedScrollPosition);
        new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                list.setSELEction(savedScrollPosition);
                savedScrollPosition = null;
            }
        },100);
    }
}

当ListView完成数据填充时,您知道有什么方法可以直接滚动ListView吗?

解决方法

试试这个:

listView.post(new Runnable() {

        @Override
        public void run() {
            listView.setSELEction(savedScrollPosition);
            savedScrollPosition = null;
        }
    });

大佬总结

以上是大佬教程为你收集整理的android – 在光标加载后将ListView滚动到某个位置全部内容,希望文章能够帮你解决android – 在光标加载后将ListView滚动到某个位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。