在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布局
答案 0 :(得分:1)
您可以通过技巧来完成。
谢谢
答案 1 :(得分:0)
覆盖活动中的dispatchTouchEvent
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (!isSomethingInProcess) {
return super.dispatchTouchEvent(ev);
} else {
return false;
}
}