Android 如何将ListView滚动到位置

Android 如何将ListView滚动到位置,android,android-listview,Android,Android Listview,我有20个项目。我使用scrollTo0,getListViewHeightlistView,5滚动位置5 错误显示为5到11。我不想让第五场演出结束。怎么办?。 我调用adapter.notifyDataSetChanged;没有疫苗。 如何显示从位置5到结尾的项目 It代码: @InjectView(R.id.list_item) ListView listView; String[] values = new String[]{"1",

我有20个项目。我使用scrollTo0,getListViewHeightlistView,5滚动位置5

错误显示为5到11。我不想让第五场演出结束。怎么办?。

我调用adapter.notifyDataSetChanged;没有疫苗。 如何显示从位置5到结尾的项目

It代码:

@InjectView(R.id.list_item)
    ListView listView;
    String[] values = new String[]{"1",
                                   "2",
                                   "3",
                                   "4",
                                   "5",
                                   "6",
                                   "7",
                                   "8",
                                   "9",
                                   "10",
                                   "11",
                                   "12",
                                   "13",
                                   "14",
                                   "15",
                                   "16",
                                   "17",
                                   "18",
                                   "19",
                                   "20",
                                   "21",
                                   "22"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo_scroll_by_load_adapter);
        ButterKnife.inject(this,
                           this);
        final ArrayAdapter adapter = new ArrayAdapter(this,
                                                      android.R.layout.simple_list_item_1,
                                                      values);
        listView.setAdapter(adapter);
        listView.scrollTo(0,
                          getListViewHeight(listView,
                                            5));
//        adapter.clear();
//        adapter.addAll(values);
       // listView.requestLayout();

    }

    private int getListViewHeight(ListView list,
                                  int position) {

        int listviewHeight = 0;

        list.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED,
                                                      View.MeasureSpec.UNSPECIFIED),
                     View.MeasureSpec.makeMeasureSpec(0,
                                                      View.MeasureSpec.UNSPECIFIED));

        listviewHeight = list.getMeasuredHeight() * position + (position * list.getDividerHeight());

        return listviewHeight;
    }
编辑

使用以下命令:

listView.postnew可运行{ @覆盖公共无效运行{ listView.smoothScrollToPositionFromTop5,0,1; } };
哦,谢谢。你能帮助我吗。listView.smoothScrollToPositionFromTop18,0,1;我要18号位置在上面。相同位置5.listView.smoothScrollToPositionFromTop18,0,1;工作,在我的屏幕上显示元素14到22,因为它不能滚动超过最后一个元素