首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中同步两个ListViews的滚动

在Android中同步两个ListViews的滚动
EN

Stack Overflow用户
提问于 2017-07-21 18:47:52
回答 1查看 985关注 0票数 1

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 19:06:56

如果你想在滚动第二个列表时停止第一个列表视图滚动,反之亦然,将lsitviews的滚动列表放在other.Then中,并阻止另一个列表视图滚动。下面是一个例子

代码语言:javascript
运行
复制
  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);

            }
        });

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

代码语言:javascript
运行
复制
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);


        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45235719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档