在Android

时间:2017-07-21 10:47:52

标签: android listview

我需要的东西就像一张有两列和动态的表。行(根据我收到的数据长度增加和减少)。目前我所做的是,我在水平线性布局中添加到listviews,所以它看起来像一个表。但问题是列表视图的滚动与其他滚动无关。我需要锁定滚动,所以如果我滚动两个将不会独立移动。

列表视图中的所有数据都是只读的(仅用于显示目的)。

可以同步滚动还是有更好的方法可以满足我的要求?

1 个答案:

答案 0 :(得分:1)

如果要在滚动第二个列表时停止第一个列表视图滚动,反之亦然。然后将滚动列表器放入lsitviews并阻止其他列表视图滚动。这是示例

  listview1.setOnScrollListener(new OnScrollListener() {
            private int mLastFirstVisibleItem;

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {

           if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
                listview1.setEnabled(true);
                listview2.setEnabled(true);
                Log.i("a", "scrolling stopped...");
            }

            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {

                  listview2.setEnabled(false);

            }
        });

第二个列表视图的方式相同

listview2.setOnScrollListener(new OnScrollListener() {
        private int mLastFirstVisibleItem;

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {

       if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {

            listview1.setEnabled(true);
            listview2.setEnabled(true);
            Log.i("a", "scrolling stopped...");
        }

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {

            listview1.setEnabled(false);


        }
    });