onTouchEvent
에 별난 문제가 있습니다. 화면 가장자리를 터치하면 작업 표시 줄 (안드로이드 동작 표시 줄이 아닌 ActionbarSherlock
사용)이 표시되고 동작 표시 줄의 높이를 수용하기 위해 "buttonClick"
버튼을 아래로 움직입니다.actionBar.show() 및 버튼 위치 변경을 트리거하기 위해 Android onTouch를 두 번 트리거해야합니다.
두 번만 터치하면 작동합니다. 첫 번째 터치에서는 동작 표시 줄이 표시되고 두 번째 터치에서는 단추가 아래로 이동합니다. 나는 처음 터치하는 동안 둘 다하지 않는 이유를 모르지만 내 주변 수색은 전혀 발화하지 않는 문제가있는 사람을 돌 렸습니다. 또는 한 두 사람은 onTouch가 인 경우에만 번만 발사하는 데 문제가있었습니다. 절대 한 번도.
코드가 아래와 같습니다. 누군가 이런 식으로 일하는 이유를 이해할 수 있도록 도와 주시면 감사하겠습니다. 이 모든 원인이되었다
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.v(TAG, "New Touch");
Log.v(TAG, "Screen Width: "+ screen_width);
if (x >= (screen_width - 95)){
int actionHeight = getSupportActionBar().getHeight();
Log.v(TAG, ""+actionHeight);
thumbParams.setMargins(0,actionHeight,0,0);
thumbClick.setLayoutParams(thumbParams);
params.setMargins(0,actionHeight,0,0);
buttonClick.setLayoutParams(params);
getSupportActionBar().show();
}
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
나는 터치 이벤트 처리기의 문제라고 생각하지 않습니다. 처음에는 버튼이 표시되지는 않지만 표시되는 막대가 표시되므로 버튼 이동 방법을 확인하십시오. 작업 표시 줄이 나타나기 때문에 코드가 실행 중임을 분명히 알 수 있습니다. – neo
안녕하세요, 신고 해 주셔서 감사합니다. 나는 붙여 넣은 코드에서 여백을 조정하여 버튼을 움직인다. 수직 여백을 actionBar의 높이로 설정 한 다음 버튼의 매개 변수를 업데이트 된 매개 변수로 설정합니다. 나는 그것이 실행되기 때문에 당황하기 전에 단지 두 번째로 치게된다. 액션 바를 보여주는 코드 다음에 배치하려고했는데, 뭔가 이상한 일을하는 경우를 대비하여 숨겨진 부분은 높이가 0입니다. 어떻게 실행했는지에 차이는 없었습니다. –
만지기 전에 버튼이 보이십니까? – neo