{"id":1244,"date":"2023-03-18T09:36:19","date_gmt":"2023-03-18T01:36:19","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1244"},"modified":"2023-04-29T09:30:51","modified_gmt":"2023-04-29T01:30:51","slug":"resolve-issue-of-android-viewpager-not-responding-to-ontouchlistener","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/18\/resolve-issue-of-android-viewpager-not-responding-to-ontouchlistener\/","title":{"rendered":"\u89e3\u51b3Android ViewPager\u4e0d\u80fd\u54cd\u5e94onTouchListener\u7684\u95ee\u9898"},"content":{"rendered":"<p>\u89e3\u51b3\u601d\u8def\u4e3b\u8981\u662f\u590d\u5199ViewPager\u4e2d\u7684dispatchTouchEvent\u51fd\u6570\uff0c\u5728\u5206\u53d1\u4e4b\u524d\u8bb0\u5f55\u4e8b\u4ef6\uff0c\u5177\u4f53\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<p>\uff081\uff09\u62e6\u622adispatchTouchEvent\u4e8b\u4ef6<\/p>\n<p><!-- more --><\/p>\n<pre><code class=\"language-java\">@Override\npublic boolean dispatchTouchEvent(MotionEvent ev) {\n    switch (ev.getAction()) {\n        case MotionEvent.ACTION_DOWN:\n            if (mOnViewPagerTouchEventListener != null) {\n                mOnViewPagerTouchEventListener.onTouchDown(ev.getX(), ev.getY());\n            }\n            break;\n        case MotionEvent.ACTION_MOVE:\n            if (mOnViewPagerTouchEventListener != null) {\n                mOnViewPagerTouchEventListener.onTouchMove(ev.getX(), ev.getY());\n            }\n            break;\n        case MotionEvent.ACTION_UP:\n            if (mOnViewPagerTouchEventListener != null) {\n                mOnViewPagerTouchEventListener.onTouchUp(ev.getX(), ev.getY());\n            }\n            break;\n        case MotionEvent.ACTION_CANCEL:\n            if (mOnViewPagerTouchEventListener != null) {\n                mOnViewPagerTouchEventListener.onTouchCancel(ev.getX(), ev.getY());\n            }\n            break;\n    }\n    return super.dispatchTouchEvent(ev);\n}\n\nprivate OnViewPagerTouchEventListener mOnViewPagerTouchEventListener;\n\npublic void setOnViewPagerTouchEventListener(OnViewPagerTouchEventListener listener){\n    mOnViewPagerTouchEventListener = listener;\n}\n\npublic interface OnViewPagerTouchEventListener {\n    void onTouchDown(float x, float y);\n    void onTouchUp(float x, float y);\n    void onTouchMove(float x, float y);\n    void onTouchCancel(float x, float y);\n}<\/code><\/pre>\n<p>\uff082\uff09\u8bbe\u7f6e\u89e6\u6478\u76d1\u542c<\/p>\n<pre><code class=\"language-java\">mViewPager.setOnViewPagerTouchEventListener(new BannerView.OnViewPagerTouchEventListener() {\n    @Override\n    public void onTouchDown(float x, float y) {\n\n    }\n\n    @Override\n    public void onTouchUp(float x, float y) {\n\n    }\n\n    @Override\n    public void onTouchMove(float x, float y) {\n\n    }\n\n    @Override\n    public void onTouchCancel(float x, float y) {\n\n    }\n});<\/code><\/pre>\n<p>\u8fd8\u6709\u4e00\u4e2a\u6709\u5f0a\u7aef\u7684\u601d\u8def\uff0c\u4e5f\u53ef\u4ee5\u54cd\u5e94onTouchListener<\/p>\n<p>\uff081\uff09\u590d\u5199ViewPager\u4e2d\u7684onInterceptTouchEvent\u51fd\u6570\uff0c\u76f4\u63a5\u8fd4\u56detrue<\/p>\n<pre><code class=\"language-java\">@Override\npublic boolean onInterceptTouchEvent(MotionEvent arg0) {\n    return true;\n}<\/code><\/pre>\n<p>\uff082\uff09\u76f4\u63a5\u4e3aViewPager\u8bbe\u7f6eonTouchListener\u5373\u53ef\u76d1\u542c\u5230\u4e8b\u4ef6<\/p>\n<pre><code class=\"language-java\">mViewPager.setOnTouchListener(new View.OnTouchListener() {\n    @Override\n    public boolean onTouch(View v, MotionEvent event) {\n        return false;\n    }\n});<\/code><\/pre>\n<p>\u4f46\u662f\u8be5\u65b9\u6cd5\u4f1a\u6709\u81f4\u547d\u7684\u95ee\u9898\uff0c\u6bcf\u4e00\u4e2aItem\u90fd\u65e0\u6cd5\u518d\u63a5\u6536\u4e8b\u4ef6<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u89e3\u51b3\u601d\u8def\u4e3b\u8981\u662f\u590d\u5199ViewPager\u4e2d\u7684dispatchTouchEvent\u51fd\u6570\uff0c\u5728\u5206\u53d1\u4e4b\u524d\u8bb0\u5f55\u4e8b\u4ef6\uff0c\u5177\u4f53\u4ee3\u7801 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[119],"tags":[68],"class_list":["post-1244","post","type-post","status-publish","format-standard","hentry","category-android-ui","tag-viewpager"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1244"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1244\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}