我有一个ScrollView
在另一个视图之上(与Buttons
). The ScrollView
占据了整个屏幕并遮挡了屏幕下方的视图。
在我的应用程序中的某个时刻我需要ScrollView
被禁用(但仍然可见)并将所有触摸事件传输到Buttons
位于以下的ScrollView
。我怎样才能做到这一点?有些观点喜欢Buttons
禁用时会自动执行此操作,但ScrollView
没有这样做。
尝试实现自己的ScrollView
它有一个标志来指示状态(禁用/启用),并且还覆盖onTouchEvent
and 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);
}
}
然后您所要做的就是更改该标志的值。看看是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)