android关于listview更新数据后如何保持位置不变

Grooter 2018-02-11 05:08:57
用setSelection只能定位前十条,因为一更新数据最先显示前十条,而后面的在滑动过程中重绘,请问如何保证在任意行数下更新数据位置能不变。由于分数不足,希望大家谅解,请求保证帮帮忙。谢谢了
...全文
1982 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
怀君 2018-02-12
  • 打赏
  • 举报
回复
如果你用的是Recycleview的话,取到当前位置的position,刷新当前item。就可以了。
  • 打赏
  • 举报
回复 1
记录: 
mList.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
               
                if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
                    mListFocus = mList.getFirstVisiblePosition();
                    View item = mList.getChildAt(0);
                    firstVisiblePositionTop = (item == null) ? 0 : item.getTop();
                }

            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

            }
        });


设置:
mList.setSelectionFromTop(mListFocus, firstVisiblePositionTop);
  • 打赏
  • 举报
回复
listview.post(new Runnable() { @Override public void run() { mAdapter.addData(messages);//addData()内部调用notifyDataSetChanged()更新数据 listview.smoothScrollToPosition(yourPosition); } }); 可以吗?

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧