使列表视图移动到最后一项位置
Making listview move to last item position
当新项目添加到视图时,我正在尝试让我的列表视图移动到最后一个项目。使用 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);
}
但是对于带有适配器的列表视图,我似乎无法弄清楚要调用的方法。
我的适配器设置
MyView = (ListView) findviewById(R.id.MyView_list);
MyAdapter = new ArrayAdapter<>(this, R.layout.list, Entries);
MyView.setAdapter(MyAdapter);
使用smoothScrollToPosition(int position)
。这将滚动列表视图,以便传入的元素显示在屏幕上。如果您不知道项目数,请使用 listView.smoothScrollToPosition(adapter.getCount());
您可以使用列表的转录模式 属性.. 如下所示-lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
更多信息请参考-http://developer.android.com/reference/android/widget/AbsListView.html#TRANSCRIPT_MODE_NORMAL
当新项目添加到视图时,我正在尝试让我的列表视图移动到最后一个项目。使用 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);
}
但是对于带有适配器的列表视图,我似乎无法弄清楚要调用的方法。 我的适配器设置
MyView = (ListView) findviewById(R.id.MyView_list);
MyAdapter = new ArrayAdapter<>(this, R.layout.list, Entries);
MyView.setAdapter(MyAdapter);
使用smoothScrollToPosition(int position)
。这将滚动列表视图,以便传入的元素显示在屏幕上。如果您不知道项目数,请使用 listView.smoothScrollToPosition(adapter.getCount());
您可以使用列表的转录模式 属性.. 如下所示-lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
更多信息请参考-http://developer.android.com/reference/android/widget/AbsListView.html#TRANSCRIPT_MODE_NORMAL