zoukankan      html  css  js  c++  java
  • 完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题

    /*******************************************************************************
     * Copyright 2011, 2012 Chris Banes.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     *******************************************************************************/
    package com.baiyi.tuan.views.pulldownview;
    
    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;
    
    /**
     * 完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题
     * 
     * @author leict
     * 
     */
    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));
    		}
    	}
    
    }
    

      

  • 相关阅读:
    python可视化---plot()函数
    蜂鸣器的相关知识及简单应用
    将一个文件夹中多个视频的视频帧保存在多个文件夹下
    键盘按键控制程序的简单案例
    Tkinter模块的详细总结
    控制LED灯发光
    python socket 套接字编程 单进程服务器 实现多客户端访问
    python 报错RuntimeError: dictionary changed size during iteration
    HTTP请求行、请求头、请求体详解(转)
    python UDP套接字通信
  • 原文地址:https://www.cnblogs.com/xiaoyao095/p/4256804.html
Copyright © 2011-2022 走看看