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

