尝试将新项目添加到视图时,将列表视图移至最后一项。使用textview,我可以通过这样做来实现这个目标
Layout layout = MyView.getLayout();
if(layout != null){
int scrollDelta = layout.getLineBottom(MyView.getLineCount() - 1)
- MyView.getScrollY() - MyView.getHeight();
if(scrollDelta > 0)
MyView.scrollBy(0, scrollDelta);
}
但是对于带有适配器的listview,我似乎无法弄清楚要调用的方法。 我的适配器设置
MyView = (ListView) findviewById(R.id.MyView_list);
MyAdapter = new ArrayAdapter<>(this, R.layout.list, Entries);
MyView.setAdapter(MyAdapter);
答案 0 :(得分:2)
使用smoothScrollToPosition(int position)
。这将滚动列表视图,以便传入的元素在屏幕上。如果您不知道项目数,请使用listView.smoothScrollToPosition(adapter.getCount());
答案 1 :(得分:0)
您可以使用list的transcript mode属性。如下所示 - lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
有关详细信息,请参阅 - http://developer.android.com/reference/android/widget/AbsListView.html#TRANSCRIPT_MODE_NORMAL