使列表视图移动到最后一项位置

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