我在实现自定义进度对话框时遇到了一些困难.即使覆盖拦截触摸事件,用户仍然可以操作轨迹球并单击应该被禁用的元素.
有没有办法解决?
//=====================================================================================
protected void showProgressIndicator()
{
progressIndicator_.show();
}
//=====================================================================================
@Override
public boolean ontrackballEvent(MotionEvent event)
{
return progressIndicator_.getVisibility() == View.VISIBLE;
}
//=====================================================================================
protected void hideProgressIndicator()
{
progressIndicator_.hide();
}
然后在show方法中
//=====================================================================================
public void show()
{
setVisibility(VISIBLE);
if (animationHandler_ != null)
return;
animationHandler_ = new Handler();
animationHandler_.post(animateTask_);
requestFocus();
}
解决方法:
检查onTrackballEvent()方法.然后尝试直接在方法中返回true而不在其中执行任何操作.这应该立即杀死事件.