onClickListener
과 onFling
(GestureDetector
사용)이 있습니다.onClickListener onFling 트리거를 내 보내지 않음
버튼을 클릭하면 onClickListener
이 발생합니다.
화면의 몸체로 날아간다면 onFling
가 발동합니다.
그러나 버튼에서 뛰어 내리기 시작하면 불이 나지 않습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/myButton"
android:layout_margin="50dp"
android:layout_height="100dp"
android:layout_width="match_parent"
android:text="Button"/>
</LinearLayout>
을 그리고 코드는 다음과 같습니다 :
레이아웃은 다음과
public class myLayout extends Activity implements GestureDetector.OnGestureListener {
private GestureDetector gDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
gDetector = new GestureDetector(getBaseContext(), this);
findViewById(R.id.myButton).setOnClickListener(button_OnClickListener);
}
final View.OnClickListener button_OnClickListener = new View.OnClickListener() {
public void onClick(final View buttonView) {
Toast.makeText(getApplicationContext(), "button pressed", Toast.LENGTH_LONG).show();
}
};
@Override
public boolean onDown(MotionEvent motionEvent) {
return true;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
}
@Override
public boolean onFling(MotionEvent start, MotionEvent finish, float v, float v2) {
if (start.getRawY() < finish.getRawY()) {
Toast.makeText(getApplicationContext(), "Fling detected", Toast.LENGTH_LONG).show();
}
return false;
}
@Override
public boolean onTouchEvent(MotionEvent me) {
Log.i("Touch", "onTouchEvent");
return gDetector.onTouchEvent(me);
}
}
가 어떻게이 onFling
먼저 실행해야받을 수 있나요?
다른 게시물 (예 : onClick blocking onFling)을 보았지만 적절한 대답을 찾을 수 없습니다.
감사를 설명하는 대답 - 해당 게시물은 확실히 도움이됩니다. 늦은 응답에 대해 죄송합니다 – dubman23
'ViewGroup' 내에'onInterceptTouchEvent'를 포함시키는 방법과이'ViewGroup'에 레이아웃을 연결하는 방법을 보여주는 다음 링크에서 매우 유용한 답변을 발견했습니다 : http://stackoverflow.com/questions/1367983/how-to-use-viewgroup-in-android – dubman23