【问题标题】:Synchronize scrolling of two ListViews in AndroidAndroid中两个ListView的同步滚动
【发布时间】:2017-09-01 19:39:59
【问题描述】:

我需要一个有两列和动态编号的表格。行数(根据我收到的数据长度增加和减少)。目前我所做的是,我以水平线性布局添加到列表视图中,因此它看起来像一个表格。但问题是列表视图的滚动都独立于其他。我需要锁定滚动,所以如果我滚动两者都不会独立移动。

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

是否可以同步滚动或者有什么更好的方法可以满足我的要求?

【问题讨论】:

  • 你的想法是不要同时滚动两个列表视图?
  • 请发布您的代码,以便我们了解您所做的事情并为您提供帮助。

标签: android listview


【解决方案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);


        }
    });

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2011-12-13
  • 1970-01-01
  • 2021-11-28
相关资源
最近更新 更多