我有一个典型的listview
,它有一个标题视图。我想设置 y 滚动值,以便最初向用户隐藏headerview。我的尝试带来了奇怪的结果。我知道headerview的确切高度(40dip),所以我想我应该能够立即将scroll-y pos设置为该高度并且很好:
ListView lv = getListView();
lv.addHeaderView(mHeaderView, null, false);
lv.setAdapter(myAdapter);
// 1) Works, but the first time I touch the screen,
// the listview pops its scroll position to zero
// immediately, pretty odd.
lv.scrollTo(40 * density);
// 2) Does not work in onCreate(), does not work
// if wrapped in a post.
lv.setSelectionAfterHeaderView();
// 3) Does not work in onCreate(), works if
// wrapped in a post.
lv.listView.setSelectionFromTop(1, 0);
我对listview
的点击现在似乎已经关闭,看起来现在将headerview解释为适配器中的第0项 - 这可能吗?这就是我使用 1 而不是 0 进行setSelectionFromTop()
调用的原因。也许这就是setSelectionAfterHeaderView()
失败的原因。
由于
答案 0 :(得分:0)
您可以将其包装在帖子上,或在适配器填充ListView
后执行它 Handler handler = new Handler()
handler.post(new Runnable() {
@Override
public void run() {
lv.setSelectionAfterHeaderView();
}
});