我在AlertDialog中提供了大量项目。我想向用户显示滚动到最可能的区域的列表,他们将从中选择一个项目。我正在使用
AlertDialog.Builder.setSingleChoiceItems(myAdapter, ...).
ArrayAdapter<MyType> myAdapter;
我遇到的问题是如何在逻辑上不正确的情况下滚动到项目以将项目显示为已选中。
我尝试从生成的ListView
中获取AlertDialog
。但它是空的(即使在Builder
创建并显示它之后)
我尝试通过在res / layout中为一架飞机ListView
充气来强制填充ListView
。 listView.scrollTo(x, y)
似乎没有效果
我尝试为AlertDialog设置OnShowListener
。永远不会调用onShow
()。
有没有人知道一项解决方法?
答案 0 :(得分:2)
smoothScrollByOffset(int offset);
或
smoothScrollToPosition(int position);
或
private void scrollToNext() {
int currentPosition = getListView().getFirstVisiblePosition();
if (currentPosition == getListView().getCount() - 1)
return;
getListView().setSelection(currentPosition + 1);
getListView().clearFocus();
}
private void scrollToPrevious() {
int currentPosition = getListView().getFirstVisiblePosition();
if (currentPosition == 0)
return;
getListView().setSelection(currentPosition - 1);
getListView().clearFocus();
}