我在我的应用程序上制作了一个复活节彩蛋,需要触摸组合才能工作。它工作正常,但我不能在屏幕上做任何其他点击。
我的课程延伸FragmentActivity
,因此我无法使用onTouchEvent
。
如果我删除被覆盖的方法dispatchTouchEvent
,我可以正常点击。
我的代码:
public class LoginActivity extends FragmentActivity implements Window.Callback {
private ImageView animEaster;
private AnimationDrawable animDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
if (!isAtivado) {
easter = "";
isAtivado = true;
System.out.println("Ativou");
}
break;
case MotionEvent.ACTION_POINTER_UP:
int count = event.getPointerCount();
easter += count;
if (count <= 2) {
if (isAtivado) {
System.out.println("Desativou");
isAtivado = false;
if (easter.equals("5435432")) {
animEaster.setVisibility(View.VISIBLE);
lblProdDes.setVisibility(View.VISIBLE);
lblProdDes.setVisibility(View.VISIBLE);
if (Servidor.servidor.equals("???????")) {
lblProdDes.setText("DESENVOLVIMENTO");
} else {
lblProdDes.setText("PRODUÇÃO");
}
animDrawable.start();
new Handler().postDelayed(new Runnable() {
public void run() {
animEaster.setVisibility(View.GONE);
animEaster.setVisibility(View.GONE);
lblProdDes.setVisibility(View.GONE);
animDrawable.stop();
}
}, 5000);
}
}
}
break;
}
return true;
}
....
我的复活节彩蛋有效,但点击次数没有。
答案 0 :(得分:0)
在某些时候,您需要调用super.dispatchTouchEvent()。如果不这样做,事件将永远不会被分派到其他视图。看起来而不是“返回true”;最后这应该是“return super.dispatchTouchEvent(event);”。