Flo*_*ade 12 reverse android listview
我的Android应用程序有一个小问题.我搜索了很长时间,但没有发现我的问题.
场景:我要显示一个还原列表视图(如Facebook Messenger).当用户滚动到顶部时,加载更多消息.
问题:notifiyDataAsChanged()通话结束后,滚动不一样!我想保存与装载前完全相同的位置.
我试过那段代码:
// save index and top position
int index = list.getFirstVisiblePosition()+result.size();
View v = list.getChildAt(index);
int top = (v == null) ? 0 : v.getTop();
// ...
// restore
list.setSelectionFromTop(index, top);
Run Code Online (Sandbox Code Playgroud)
但加载后滚动不完全相同.
你有个主意吗?
jim*_*thy 38
我认为你应该考虑使用TranscriptMode和StackFromBottom与你的listview:
android:stackFromBottom="true"
android:transcriptMode="normal"
Run Code Online (Sandbox Code Playgroud)
通过将抄本模式设置为正常,仅当最后一个项目已在视图中时,它才会滚动到底部.这样,当您调用notifydatasetchanged时,您的用户可以不间断地查看以前的列表视图项.
小智 6
这样做:
Collections.reverse(YourList); // ADD THIS LINE TO REVERSE ORDER!
YourList.notifyDataSetChanged;
Run Code Online (Sandbox Code Playgroud)