ScrollView에서 ChildView를 다시여십시오
-
05-09-2019 - |
문제
부모님이 있습니다 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;
}
또한, 나는 당신이 당신의 활동에서 키 프레스를 가로 채어야한다고 생각합니다.
제휴하지 않습니다 StackOverflow