フラグメント上でViewPagerを使用しています。
ViewPagerにGridViewをセットしてonItemClickで日付を選択できるようなカレンダーを作成しました、そこでGoogleのカレンダーのようにフリックで大きさを変えることができるようにするため、GestureDitectorを使用したいのですがsetOnTouchListenerが反応しない状態です。
Java
1public class CalendarFragment extends Fragment { 2 3private CalendarAdapter mCalendarAdapter; 4 5 public View onCreateView(LayoutInflater inflater, ViewGroup container, 6 Bundle savedInstanceState) { 7 calendarGridView = rootview.findViewById(R.id.calendarGridView); 8 mCalendarAdapter = new CalendarAdapter(getContext(),calendarGridView); 9 calendarGridView.setAdapter(mCalendarAdapter); 10 mCalendarAdapter.MoveMonthbyIndex(index); 11 tvTitle.setText(mCalendarAdapter.getTitle()); 12 13 //カレンダー上のセルをクリックしたときのイベント 14 calendarGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 15 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 16 17 ...処理 18} 19 20 21 }); 22
Java
1public class CalFragment extends Fragment { 2private GestureDetectorCompat mDetector; 3 4public View onCreateView(@NonNull LayoutInflater inflater, 5 ViewGroup container, Bundle savedInstanceState) { 6 7mDetector = new GestureDetectorCompat(getContext(), new MyGestureListener()); 8 9 View view = inflater.inflate(R.layout.fragment_cal, container, false); 10 //ViewPager 11 v = view.findViewById(R.id.CalendarPager); 12 v.setOnTouchListener(new View.OnTouchListener() { 13 @Override 14 public boolean onTouch(View v, MotionEvent event) { 15 mDetector.onTouchEvent(event); 16 return false; 17 } 18 }); 19} 20 class MyGestureListener extends GestureDetector.SimpleOnGestureListener { 21 22 23 @Override 24 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 25 26 float dx = e1.getX() - e2.getX(); 27 float dy = e1.getY() - e2.getY(); 28 if (Math.abs(dy) > Math.abs(dx)) { 29 if (dy > 0) { 30 // 上方向フリック 31 mListener.animeup(); 32 } else if (dy < 0) { 33 // 下方向フリック 34 mListener.animedown(); 35 } 36 37 } 38 return false; 39 } 40 41 42 43 } 44}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/17 08:06
2019/12/19 13:04
2019/12/20 06:38