gpt4 book ai didi

android - 想要在滚动另一个 ScrollView 时并行滚动一个 ScrollView

转载 作者:行者123 更新时间:2023-11-30 00:40:33 30 4
gpt4 key购买 nike

我在同一布局中创建了两个 ScrollView。你可以说一个平行的 ScrollView 。我想手动滚动一个 ScrollView ,作为响应,另一个 ScrollView 应该以完全相同的方式滚动。两个 View 的滚动长度相同。对于两个 ScrollView ,这应该发生相同的情况。我为此尝试了一个代码。

horizontalScrollViewB.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
horizontalScrollViewD.scrollTo(horizontalScrollViewB.getScrollX(), horizontalScrollViewB.getScrollY());
}
});
horizontalScrollViewD.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
horizontalScrollViewB.scrollTo(horizontalScrollViewD.getScrollX(), horizontalScrollViewD.getScrollY());
}
});

这里发生的事情是第一个“B” ScrollView 它工作正常但对于“D” ScrollView 它在滚动时产生问题。我了解问题但无法获得解决方案。那么当另一个人正在调用“onScrollChangeListener()”时,我应该怎么做才能避免一个人的电话。

最佳答案

覆盖 Horizo​​ntalView 类

package com.example.shaby.payshare;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.HorizontalScrollView;

/**
* Created by shaby on 3/7/2017.
*/

public class HorizontalScroll extends HorizontalScrollView {

private ScrollViewListener scrollViewListener = null;
public interface ScrollViewListener {

void onScrollChanged(HorizontalScroll scrollView, int x, int y, int oldx, int oldy);

}
public HorizontalScroll(Context context) {
super(context);
}

public HorizontalScroll(Context context, AttributeSet attrs) {
super(context, attrs);
}

public HorizontalScroll(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}

@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if(scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
}

在你需要的类中实现接口(interface)

关于android - 想要在滚动另一个 ScrollView 时并行滚动一个 ScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42643186/

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