Android編程開(kāi)發(fā)ScrollView中ViewPager無(wú)法正?;瑒?dòng)問(wèn)題解決方法
本文實(shí)例講述了Android編程開(kāi)發(fā)ScrollView中ViewPager無(wú)法正常滑動(dòng)問(wèn)題解決方法。分享給大家供大家參考,具體如下:
這里主要介紹如何解決ViewPager在ScrollView中滑動(dòng)經(jīng)常失效、無(wú)法正常滑動(dòng)問(wèn)題。
解決方法只需要在接近水平滾動(dòng)時(shí)ScrollView不處理事件而交由其子View(即這里的ViewPager)處理即可,重寫(xiě)ScrollView的onInterceptTouchEvent函數(shù),如下:
package cc.newnews.view; import android.content.Context; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; import android.widget.ScrollView; public class VerticalScrollView extends ScrollView { private GestureDetector mGestureDetector; public VerticalScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(context, new YScrollDetector()); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } class YScrollDetector extends SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { /** * 如果我們滾動(dòng)更接近水平方向,返回false,讓子視圖來(lái)處理它 */ return (Math.abs(distanceY) > Math.abs(distanceX)); } } }
再將xml中的ScrollView改為<xxx.xxx.xxx.VerticalScrollView>即包名.重寫(xiě)的ScrollView的類(lèi)名)即可。
本方法同樣適用于ScrollView中ListView等其他View無(wú)法滾動(dòng)。
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android中實(shí)現(xiàn)監(jiān)聽(tīng)ScrollView滑動(dòng)事件
- Android中ScrollView實(shí)現(xiàn)滑動(dòng)距離監(jiān)聽(tīng)器的方法
- Android ScrollView滑動(dòng)實(shí)現(xiàn)仿QQ空間標(biāo)題欄漸變
- android scrollview 滑動(dòng)到頂端或者指定位置的實(shí)現(xiàn)方法
- Android中Toolbar隨著ScrollView滑動(dòng)透明度漸變效果實(shí)現(xiàn)
- Android HorizontalScrollView左右滑動(dòng)效果
- Android開(kāi)發(fā)控制ScrollView滑動(dòng)速度的方法
- Android中使用ScrollView實(shí)現(xiàn)滑動(dòng)到底部顯示加載更多
- Android開(kāi)發(fā)之ScrollView的滑動(dòng)監(jiān)聽(tīng)
- Android自定義控件ScrollView實(shí)現(xiàn)上下滑動(dòng)功能
相關(guān)文章
Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包)
這篇文章主要介紹了Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Android 6.0區(qū)別U盤(pán)和SD卡設(shè)備的方法詳解
今天小編就為大家分享一篇Android 6.0區(qū)別U盤(pán)和SD卡設(shè)備的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08解決Eclipse啟動(dòng)出錯(cuò):Failed to create the Java Virtual Machine
這篇文章主要介紹了解決Eclipse啟動(dòng)出錯(cuò):Failed to create the Java Virtual Machine的相關(guān)資料,這里說(shuō)明出錯(cuò)原因及查找錯(cuò)誤和解決辦法,需要的朋友可以參考下2017-07-07android編程判斷應(yīng)用是否具有某個(gè)權(quán)限的方法
這篇文章主要介紹了android編程判斷應(yīng)用是否具有某個(gè)權(quán)限的方法,涉及Android進(jìn)程操作及權(quán)限控制的相關(guān)使用技巧,需要的朋友可以參考下2015-10-10通過(guò)Android trace文件分析死鎖ANR實(shí)例過(guò)程
遇到ANR(Application Not Responding)是比較常見(jiàn)的問(wèn)題,產(chǎn)生ANR的原因有很多,比如CPU使用過(guò)高、事件沒(méi)有得到及時(shí)的響應(yīng)、死鎖等,下面將通過(guò)一次因?yàn)樗梨i導(dǎo)致的ANR問(wèn)題,來(lái)說(shuō)明如何通過(guò)trace文件分析ANR問(wèn)題2013-06-06AndroidStudio實(shí)現(xiàn)微信界面設(shè)計(jì)
這篇文章帶你通過(guò)Androidstudio來(lái)實(shí)現(xiàn)微信的基礎(chǔ)界面,微信的界面主要包含了主頁(yè)、通訊錄、發(fā)現(xiàn)以及我的賬號(hào)功能區(qū),下文包含了整個(gè)開(kāi)發(fā)過(guò)程,以及解決該問(wèn)題的過(guò)程及思路并提供了源碼2021-10-10viewpager+photoview實(shí)現(xiàn)圖片查看器
這篇文章主要為大家詳細(xì)介紹了viewpager+photoview實(shí)現(xiàn)圖片查看器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Mono for Android 實(shí)現(xiàn)高效的導(dǎo)航(Effective Navigation)
Android 4.0 系統(tǒng)定義了一系列的高效導(dǎo)航方式 (Effective Navigation), 主要包括標(biāo)簽、下拉列表、以及向上和返回等, 本文介紹如何用 Mono for Android 實(shí)現(xiàn)這些的導(dǎo)航方式2012-12-12