検索

ホームページ  >  に質問  >  本文

android - MotionEvent.ACTION_MOVE 在onTouchEvent返回false情况下事件仍然上传

viewpage里面放了一个imageview,MotionEvent.ACTION_MOVE里面设置imageview随着手指滑动,onTouchEvent是返回了true。纵向滑动没有问题,横向滑动会出现滑动一点点距离就划不动了,viewpage开始滑动。这是什么情况的。viewpage是横向的。

PHP中文网PHP中文网2773日前723

全員に返信(1)返信します

  • PHP中文网

    PHP中文网2017-04-17 17:49:46

    ViewPager.onInterceptTouchEvent() は通常、水平方向のスライドをブロックするため、画像は MotionEvent.ACTION_MOVE アクションを受けません。

    解決策はおおよそ次のとおりです。
    ViewPager.onInterceptTouchEvent()MotionEvent.ACTION_MOVE の下に水平方向のスライドを防ぐコードがあります

    リーリー

    このコードを実行できる限り、ViewPager はこの水平スライドをインターセプトしません。キー メソッドは canScroll()

    である必要があります。

    ソースコードは以下のとおりです

    リーリー

    ざっくり言うと、中のサブコントロールが横にスライドできるかどうかを判断するものです
    自分の中の最後のサブコントロールがImageViewなので、最後のキーはvが<🎜のとき
    ViewCompat.canScrollHorizontally(v, -dx);です>、ImageView true に戻る

    上位バージョンを使用している場合、実際に実行されるのは

    メソッドです。ここでのコードは非常に単純なので、ここでは記載しません。このメソッドは ImageView.canScrollHorizontally() を直接継承し、View.canScrollHorizontally() を返します。そこで私は 2 つの解決策を考えます false

    1. スライディング コントロールを

      ImageView

      の親コントロールとして使用します
    2. ImageView.canScrollHorizontally()推奨方法 1true
      を返すように

      を書き換えます
    上記の分析はコードを検証するために書かれたものではありません。エラーがある可能性があります。修正してください

    返事
    0
  • キャンセル返事