我在另一个 View 之上有一个 ScrollView
(带有 Buttons
)。 ScrollView
占据了整个屏幕并遮挡了其下方的 View 。
在我的应用程序中的某个时刻,我需要禁用ScrollView
(但仍然可见)并将所有触摸事件传输到下方的
。我怎样才能做到这一点?某些 View (如 Buttons
> ScrollView Buttons
)在禁用时会自动执行此操作,但 ScrollView
不会执行此操作。
最佳答案
尝试实现你自己的 ScrollView
,它有一个标志来指示状态(禁用/启用)并且还覆盖 onTouchEvent
和 dispatchTouchEvent
让触摸事件通过 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/