我最近在我的应用程序中实现了代码,允许应用程序在布尔字段设置为<ul>
<li>
<a href="#">Menu option</a>
</li>
<li>
<a href="#">Menu option2</a>
<ul>
<li>
<a href="#">Submenu 1</a>
<ul>
<li>
<a href="#">Submenu 2</a>
</li>
</ul>
</li>
<li>
<a href="#">Submenu</a>
</li>
<li>
<a href="#">Submenu</a>
</li>
</ul>
</li>
</ul>
时禁用所有用户交互。这样做的目的是防止用户在车辆运动时与应用程序交互。正如其他问题/答案所建议的那样,我通过在我的活动中覆盖true
来实现这一点。
dispatchTouchEvent
此代码的问题在于我的应用包含public boolean dispatchTouchEvent(MotionEvent event) {
if (mLockedOut) {
showLockedOutDialog();
return true;
}
return super.dispatchTouchEvent(event);
}
中显示的多个片段。如果在用户在页面之间滑动时禁用了用户交互,ViewPager
将卡在页面之间。
如何防止这种情况发生?我已经发布了我的解决方案,但想知道我是否忽略了一些边缘或角落的情况。