gpt4 book ai didi

android - 如何在 Android 中同步两个 ScrollView ?

转载 作者:太空狗 更新时间:2023-10-29 14:47:15 34 4
gpt4 key购买 nike

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

其中一个是 Horizo​​ntalScrollView,另一个是 RecyclerView

试过如下的解决方案,没有任何成功:

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);

}
});

关于android - 如何在 Android 中同步两个 ScrollView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38665677/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com