今回viewpagerが使用できないためonStart内でスワイプ動作とタブクリック動作を分けることになりました。
現在のコードは
// X軸最低スワイプ距離 private static final int SWIPE_MIN_DISTANCE = 10; // X軸最低スワイプスピード private static final int SWIPE_THRESHOLD_VELOCITY = 10; // Y軸の移動距離 これ以上なら横移動を判定しない private static final int SWIPE_MAX_OFF_PATH = 200; // タッチイベントを処理するためのインタフェース private GestureDetector mGestureDetector; @Override public void onCreate(final Bundle savedInstanceState) { mGestureDetector = new GestureDetector(this, mOnGestureListener); } // タッチイベントのリスナー private final GestureDetector.SimpleOnGestureListener mOnGestureListener = new GestureDetector.SimpleOnGestureListener() { // フリックイベント @Override public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { try { // 移動距離・スピードを出力 float distance_x = Math.abs((event1.getX() - event2.getX())); float velocity_x = Math.abs(velocityX); //textView1.setText("横の移動距離:" + distance_x + " 横の移動スピード:" + velocity_x); // Y軸の移動距離が大きすぎる場合 if (Math.abs(event1.getY() - event2.getY()) > SWIPE_MAX_OFF_PATH) { //textView2.setText("縦の移動距離が大きすぎ"); //ここではタブ変更なし } // 開始位置から終了位置の移動距離が指定値より大きい // X軸の移動速度が指定値より大きい else if (event1.getX() - event2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { //textView2.setText("右から左"); //現在のタブを取得して-1 } // 終了位置から開始位置の移動距離が指定値より大きい // X軸の移動速度が指定値より大きい else if (event2.getX() - event1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { //textView2.setText("左から右"); //現在のタブを取得して+1 } } catch (Exception e) { // TODO } return false; } }; //ここからはメインアクティビティが始まった時 @Override public void onStart() { //ここからlistviewスワイプ動作 //(ア)上記で定義したonFligを取得してスワイプさせたい //ここからはタブクリックの時遷移 //タブ クリック時の動作は完成済み tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tag) { Object obj = tag.getTag(); String objStr = obj.toString(); ・・・・・・・ ・・・・・・・ ・・・・・・・ } }
XMLは(タブはJavaの方で3つほど定義ずみ)
<android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ListView android:id="@+id/lvw" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:clickable="true" android:focusable="true" android:listSelector="@xml/list_selector"> </ListView>
質問
①http://takeshiyako.blogspot.jp/2015/08/android-flick-input-event.html?m=1ではtextviewを定義していたが今回はListview上をスワイプした時に隣にスワイプさせたい
上記JavaではListviewのID等を定義していないがスワイプを定義したonFling等はListviewをスマホ上でスワイプさせた時に動くか?
②onStart()より上で定義したスワイプを(ア)の部分で取得する方法
③ public boolean onFlingが仮に(ア)の部分で取得できたとして現在のタブ番号を取得する方法
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/01 03:21
2017/02/01 03:25
2017/02/01 03:43
2017/02/01 03:51
2017/02/01 04:09
2017/02/01 04:17
2017/02/01 05:00
2017/02/01 05:02
2017/02/01 05:17
2017/02/01 05:32
2017/02/01 05:58
2017/02/01 06:41
2017/02/01 06:56
2017/02/01 07:03
2017/02/01 07:06
2017/02/01 08:24
2017/02/01 08:36
2017/02/01 08:36
2017/02/01 08:36
2017/02/01 08:58
2017/02/01 08:58