是否有一种简单的方法可以禁用用户与活动进行交互.要在运行动作时执行(以及标题栏中的旋转进度条)
编辑:因为我似乎不够清楚我想说:虽然我已经有一个旋转的进度条,用户仍然能够按下活动上的任何按钮,我想禁止用户能够这样做任务正在运行.但我不想逐一禁用屏幕上的每个项目.
谢谢你,杰森
Uri*_*kel 129
要阻止用户触摸事件,请使用:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Run Code Online (Sandbox Code Playgroud)
要获取触摸事件,请使用:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Run Code Online (Sandbox Code Playgroud)
编辑:如果要添加禁用和灰色显示功能,则需要在xml布局文件中添加填充父级的线性布局.将其背景设置为#B0000000,将其可见性设置为Gone.比计划性地将其可见性设置为Visible.
如果需要在一段时间内禁用事件处理(例如,在运行动画时显示等待对话框),则可以覆盖活动的调度功能.
要禁用任何按钮的触摸/点击,请将这些成员/功能添加到您的活动中:
protected boolean enabled = true;
public void enable(boolean b) {
enabled = b;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return enabled ?
super.dispatchTouchEvent(ev) :
true;
}
Run Code Online (Sandbox Code Playgroud)
然后enable(true/false)
在需要禁用和启用活动的正常事件处理时调用.
归档时间: |
|
查看次数: |
37379 次 |
最近记录: |