Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中同步两个scrollview?_Android_Horizontal Scrolling - Fatal编程技术网

如何在Android中同步两个scrollview?

如何在Android中同步两个scrollview?,android,horizontal-scrolling,Android,Horizontal Scrolling,我有两个水平滚动视图,希望它们始终保持在相同的位置/距离。如果用户滚动其中一个,则需要以编程方式滚动另一个。挑战在于,将出现无限循环。一个会举起另一个,另一个会先举起。如何设置状态,指示用户启动的滚动仍在进行中?因此,其他scrollview不应执行编程滚动 其中一个是水平滚动视图另一个是回收视图 尝试了以下解决方案,但没有成功: horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewT

我有两个水平滚动视图,希望它们始终保持在相同的位置/距离。如果用户滚动其中一个,则需要以编程方式滚动另一个。挑战在于,将出现无限循环。一个会举起另一个,另一个会先举起。如何设置状态,指示用户启动的滚动仍在进行中?因此,其他scrollview不应执行编程滚动

其中一个是
水平滚动视图
另一个是
回收视图

尝试了以下解决方案,但没有成功:

    horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {

        @Override
        public void onScrollChanged() {

            if (programmaticScrollEnable) {
                programmaticScrollEnable = false;
                // do programmatic scrolling here
                programmaticScrollEnable = true;
            }
        }
    });
试图在
onScrollStateChanged
方法中更改状态:

            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);

                /*if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    MainActivity.programmaticScrollEnable = true;
                }*/
            }
试试这个

horizontalScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {

    @Override
    public void onScrollChanged() {

   recyclerView.scrollTo(horizontalScrollView.scrollTo(horizontalScrollView.getScrollX(), 0);

    }
});
对这个有什么想法吗