android:同时滚动水平listView

时间:2012-01-13 07:04:42

标签: android layout

考虑我有两个Horizo​​ntal ListView,如下所示:


list1的


list2中

我想知道是否可以使第二个列表(list2)视图与第一个列表(list1)的滚动同时水平滚动.....

那是当我滚动list1(水平)时,即使list2必须滚动相同的偏移...

这是可能的,如果是的话,请帮助......

![链接到图片]:https://picasaweb.google.com/109389839906668906213/January132012#5697019272538269218

2 个答案:

答案 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中没有Horizo​​ntalListView,您必须拥有另一个适配器视图,无论如何都要实现以下内容:

list1.setOnItemSelectedListener(new OnItemSelectedListener()
{
   public void onItemSelected(AdapterView adapterView adapterView, View view, int position, long id){
       list2.setSelection(position);
   }
});