編輯:關於Android編程
本文實例講述了Android編程開發ScrollView中ViewPager無法正常滑動問題解決方法。分享給大家供大家參考,具體如下:
這裡主要介紹如何解決ViewPager在ScrollView中滑動經常失效、無法正常滑動問題。
解決方法只需要在接近水平滾動時ScrollView不處理事件而交由其子View(即這裡的ViewPager)處理即可,重寫ScrollView的onInterceptTouchEvent函數,如下:
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程序設計有所幫助。
Android px, dp, sp的區別
Android自興起以來,開發者不斷增加,與此同時市場上參差不齊的設備也不斷增加,隨之而來的則是開發者需要適配眾多機型而帶來的困擾與抱怨。並且隨著不同廠家定制化不同的RO
一加手機2和錘子手機2哪個好 一加2錘子2對比
一加手機與錘子手機一直以來備受關注,近日陸續傳出一加2與錘子2的消息,而且兩者都選在7月28日同一天舉行手機發布會,是不是覺得很有趣?那麼,一加手機2和錘子
Android RecyclerView使用詳解
簡介RecyclerView是Google在android-supportv7包中推出的一個新的控件,該控件的主要作用是用於替代ListView、GridView,相比較
Android錄制聲音文件(音頻),並播放
readme:1、這個demo中沒有對多次點擊同一個聲音文件做詳細處理,偶爾會有崩潰,用的時候需要注意。2、按住錄音按鈕錄音過程中,只對豎直方向處理了一下,水平方向沒寫;