ListView.setSelection(int)不选择项目

时间:2017-03-12 05:48:16

标签: android listview

这是一个常见的问题,我知道。

我有ListView个包含099个职位的100个项目。第一次呈现列表时,只有前10个项目可见,对吧?我可以在setSelection(int)中使用ListView.post(Runnable)作为09的位置,这些位置正常工作。如果我想选择位置45的项目怎么办? setSelection(int)似乎无法正常工作,因为在呈现列表时,我们没有任何具有位置45的项目,而是在我们向下滚动时呈现它。所以我的问题是:

如果项目未呈现,我如何选择项目(并使其可见)?

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

  listview.post(new Runnable() 
   {
    @Override
    public void run() 
      {
        listview.setSelection(45);   // your position
        View view = listview.getChildAt(45);
        if (view != null) 
        {
            view.requestFocus();   //request focus on row
        }
     }
  });
}