这是一个常见的问题,我知道。
我有ListView
个包含0
到99
个职位的100个项目。第一次呈现列表时,只有前10个项目可见,对吧?我可以在setSelection(int)
中使用ListView.post(Runnable)
作为0
到9
的位置,这些位置正常工作。如果我想选择位置45
的项目怎么办? setSelection(int)
似乎无法正常工作,因为在呈现列表时,我们没有任何具有位置45
的项目,而是在我们向下滚动时呈现它。所以我的问题是:
如果项目未呈现,我如何选择项目(并使其可见)?
答案 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
}
}
});
}