gpt4 book ai didi

android - 如何将触摸事件传输到 RelativeLayout 下方的 View ?

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:51 25 4
gpt4 key购买 nike

我在另一个 View 之上有一个 ScrollView(带有 Buttons)。 ScrollView 占据了整个屏幕并遮挡了其下方的 View 。

在我的应用程序中的某个时刻,我需要禁用ScrollView(但仍然可见)并将所有触摸事件传输到下方的Buttons > ScrollView 。我怎样才能做到这一点?某些 View (如 Buttons)在禁用时会自动执行此操作,但 ScrollView 不会执行此操作。

最佳答案

尝试实现你自己的 ScrollView,它有一个标志来指示状态(禁用/启用)并且还覆盖 onTouchEventdispatchTouchEvent让触摸事件通过 ScrollView。这是一个例子:

public class DisabledScrollView extends ScrollView {

private boolean mIsDisable = false;

// if status is true, disable the ScrollView
public void setDisableStatus(boolean status) {
mIsDisable = status;
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
// no more tocuh events for this ScrollView
if (mIsDisable) {
return false;
}
return super.onTouchEvent(ev);
}

public boolean dispatchTouchEvent(MotionEvent ev) {
// although the ScrollView doesn't get touch events , its children will get them so intercept them.
if (mIsDisable) {
return false;
}
return super.dispatchTouchEvent(ev);
}

}

然后您所要做的就是更改该标志的值。看看它是否有效。

关于android - 如何将触摸事件传输到 RelativeLayout 下方的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834737/

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