考虑我有两个Horizontal ListView,如下所示:
我想知道是否可以使第二个列表(list2)视图与第一个列表(list1)的滚动同时水平滚动.....
那是当我滚动list1(水平)时,即使list2必须滚动相同的偏移...
这是可能的,如果是的话,请帮助......
![链接到图片]:https://picasaweb.google.com/109389839906668906213/January132012#5697019272538269218
答案 0 :(得分:2)
你可以这样做 - 只需创建这样的布局并使用滚动事件:
list1.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
list2.setSelectionFromTop(firstVisibleItem, list1.getChildAt(0).getTop());
}
});
一些解释:
最好使用list.setSelectionFromTop()
而不是list.scrollTo()
- 因为第一个列表的第一个可见项可以部分显示。
list1.getChildAt(0).getTop()
- 用于获取第一个可见项的X坐标值的构造。
答案 1 :(得分:0)
由于Android中没有HorizontalListView,您必须拥有另一个适配器视图,无论如何都要实现以下内容:
list1.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView adapterView adapterView, View view, int position, long id){
list2.setSelection(position);
}
});