Android 使listview移动到最后一个项目位置

Android 使listview移动到最后一个项目位置,android,android-listview,android-adapter,Android,Android Listview,Android Adapter,当新项目添加到视图中时,我试图使我的listview移动到最后一个项目。使用textview,我可以通过这样做来实现这一点 Layout layout = MyView.getLayout(); if(layout != null){ int scrollDelta = layout.getLineBottom(MyView.getLineCount() - 1) - MyView.getScrollY() - MyVie

当新项目添加到视图中时,我试图使我的listview移动到最后一个项目。使用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);
MyView=(ListView)findviewById(R.id.MyView\u列表);
MyAdapter=new ArrayAdapter(这个,R.layout.list,条目);
setAdapter(MyAdapter);

使用
平滑滚动位置(int位置)
。这将滚动listview,以便传入的元素显示在屏幕上。如果您不知道项目的数量,请使用
listView.smoothScrollToPosition(adapter.getCount())

您可以使用list.的transcript mode属性。类似于下面-
lv.settranscript mode(ListView.transcript\u mode\u NORMAL)


有关更多信息,请参阅-

我不确定这是否可行。每当发生notifyDataSetChanged时,它都会导致滚动,添加新项时可能会滚动,也可能不会滚动。当不需要时,它可能会导致大量的滚动。