如何在Fragments
上运行进程时禁用所有触摸事件。我们的设备内置打印机。在打印和快速点击屏幕时,它会使应用程序崩溃,我如何确保屏幕不可触摸?我试过用
getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
和
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
崩溃仍然发生。我还尝试在我的父LinearLayout
上添加一个ID,并尝试启用和禁用它。但是,没有任何反应?它的替代代码是什么?谢谢!
错误日志
02-26 18:16:37.000 18941-18946/com.jti.mikee.jti_pos I/dalvikvm: threadid=3: reacting to signal 3
02-26 18:16:37.060 18941-18946/com.jti.mikee.jti_pos I/dalvikvm: Wrote stack traces to '/data/anr/traces.txt'
02-26 18:16:37.110 18941-18941/com.jti.mikee.jti_pos I/HAL_JNI: - native_printer_close(), result = 0
02-26 18:16:37.130 18941-18941/com.jti.mikee.jti_pos I/Choreographer: Skipped 357 frames! The application may be doing too much work on its main thread.02-26 18:16:40.740 18941-18941/com.jti.mikee.jti_pos A/libc: Fatal signal 6 (SIGABRT) at 0x00000419 (code=0), thread 18941 (i.mikee.jti_pos)
XML布局
你可以通过使用技巧来做。
谢谢
覆盖活动中的dispatchTouchEvent
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (!isSomethingInProcess) {
return super.dispatchTouchEvent(ev);
} else {
return false;
}
}