문제

부모님이 있습니다 ScrollView 어린이보기와 함께. 사용자가 뒤로 버튼을 누르면 어린이보기가 이벤트를 처리하기를 원합니다. 나는 몇 가지를 시도했지만 그들 중 누구도 작동하지 않는 것 같습니다. 뒤로 버튼을 누르면 활동이 죽습니다.

public class GameScrollView extends ScrollView{

     public GameScrollView(Context context) {
          super(context);
     }
     @Override
     public boolean onInterceptTouchEvent (MotionEvent ev){
          return false;

     }
     @Override
     public boolean onKeyDown (int keyCode, KeyEvent event){
          return false;

     }
}

어린이보기에는 다음 코드가 있습니다

public class GameView extends View implements OnTouchListener, onKeyListener{

     public boolean onKey(View v, int keyCode, KeyEvent event){
          if(keyCode == KeyEvent.KEYCODE_BACK){
                    //do stuff
          }
          invalidate();
          return true;        
     }
}

에서 ScrollView 나는 또한 그것을 재정의하려고 노력했다 dispatchKeyEvent거짓을 반환하는 방법이지만 작동하지 않았습니다. 여기서 내가 뭘 잘못하고 있니?

감사!

도움이 되었습니까?

해결책 2

나는 그것을 알아. 이것이 효과가없는 이유는 어린이 견해에 초점이 없었기 때문입니다.

설정 requestFocus() 아동 뷰의 생성자의 속성은 문제를 해결했습니다.

다른 팁

@Override 
public boolean onKeyDown(int i, KeyEvent event) {

      if (i == KeyEvent.KEYCODE_BACK) {
          return true;
        else {
          super.onKeyDown(i, event);
          return true;
        }
      }
      return false;
    }

또한, 나는 당신이 당신의 활동에서 키 프레스를 가로 채어야한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top