ViewPager 嵌套Listview 让Listview响应 ViewPager 左右滑事件

一段拦截判断而已.   之前一直误解了一个拦截的描述.导致搞了半天.

结论: onInterceptTouchEvent 返回true,就由本身View的onTouchEvent进行事件消费。

/**     在控件中 左右滑时 强制拦截事件的ViewPager
 * Created by user on 2016/3/7.
 */
public class MyViewPager extends ViewPager {
    private String TAG = "MyViewPager";
    private int startX;
    private int startY;
    public MyViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyViewPager(Context context) {
        super(context);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        switch (ev.getAction()){
            case MotionEvent.ACTION_DOWN:
                startX = (int) ev.getRawX();
                startY = (int) ev.getRawY();
                break;
            case MotionEvent.ACTION_MOVE:
                int endX = (int) ev.getRawX();
                int endY = (int) ev.getRawY();
                if (Math.abs(endX - startX) > Math.abs(endY - startY)) {// 左右滑动
                    return true;
                }else{
                    return super.onInterceptTouchEvent(ev);
                }
        }
        return super.onInterceptTouchEvent(ev);
    }
}
时间: 2024-10-05 06:36:00

ViewPager 嵌套Listview 让Listview响应 ViewPager 左右滑事件的相关文章

当ViewPager嵌套在ScrollView/ListView里时,手势冲突如何处理?

有时我们需要将ViewPager嵌套在其他已经含有手势动作的ViewGroup里,如ScrollView,ListView时,会造成手势冲突,如表现为ViewPager向左划时,不小心向上移动了一点距离,ViewPager立刻回弹到原始位置. 主要问题出在ScrollView/ListView作为ViewPager的ParentView,会先接受到触摸信息,而且他们对上下滑动是会做出拦截动作,并接管触摸信息的向下传递,导致ViewPager滑动异常. 先看一种解决方式: public class

android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点

1.先上图后说话 2.代码 package com.example.exmp; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import and

viewpager动态加载listView数据

package com.example.viewpage; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.BitmapFactory; import androi

ListView.addHeadView添加ViewPager,ViewPager左右切换影响ListView上下滑动

ListView.addHeadView添加ViewPager,ViewPager左右切换影响ListView上下切换,对viewpager做触摸监听: viewPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int act = event.getAction(); if (act == MotionEvent.ACTION

android listview中item通过viewpager实现

android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项目主要介绍多个viewpager加载图片和listview 上下滑动不卡顿问题.本项目由作者Flyco分享的分享地址:https://github.com/H07000223/FlycoBanner_Master.本项目找对应id封装一个ViewFindUtils类,通过如下代码找id    /**

向 ViewPager 中添加 包含 ListView 的 Fragment

对与fragment就不说什么了,直接看API手册吧,亲. 向 ViewPager 中添加 包含 ListView 的 Fragment 的过程比较麻烦.他所表现的效果就是新闻客户端的滑动翻页效果. 在这里就不粘代码了.只把思路理一下.代码有时间再粘: 一,你需要一个 ViewPager :在实验时,我的activity中就只有一个ViewPager.没有别的东西. 二,你需要一个自定义的fragment,在我们这里的话,这种fragment中有一个listView就可以了(布局文件中只有一个L

网络请求(viewPager,Fragment,ListView)

数据接口地址:(校园内部地址,不能使用网络流量访问) 三张向导图片的接口文件: http://172.17.29.120/localuser/ljy/ndhx/pic.json 栏目导航接口文件: http://172.17.29.120/localuser/ljy/ndhx/nav.json 关于我们接口文件: http://172.17.29.120/localuser/ljy/ndhx/about.json 培训动态接口文件: http://172.17.29.120/localuser/

Android仿小米商城商品详情界面UI,ScrollView嵌套ScrollView/WebView/ListView

最近公司没事,研究了下多嵌套滚动组件的事件分发,虽然以前也接触过,但都是拿网上的用,也是特别简单的,正好朋友也需要,就研究了下 这个Demo也不是很完善,放上来也是让各位大牛给指点一下,优化优化 使用情景: 小米商城商品详情界面,界面看似ScrollView,但当正常滚动到底部时,提示继续上拉显示更多详情,上拉后直接滚动到第二屏,第二屏是个ViewPager,ViewPager里面的各个pager有的是WebView有的是ListView,有的是ScrollView,一开始想想就特别头晕,后来理

三层ViewPager嵌套 的事件处理

这么多ViewPager嵌套在一起肯定会遇到冲突 不信你试试(笑脸) 下面来说怎么解决.....太为难我这个菜b了 设置外部的父控件不要拦截我子控件的事件,通过重写ViewPager的 @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return false;//不拦截事件, 让嵌套的子viewpager有机会响应触摸事件 } 来决定 事件是否中断,返回true则子控件就不能滑动

ViewPager嵌套ViewPager后子ViewPager滑动不正常问题

ViewPager嵌套ViewPager后,滑动事件没法在子ViewPager里面响应. 解决办法是自定义子ViewPager. 以下代码是转载的,经本人测试,可以用!!! 转载地址:http://blog.csdn.net/leewenjin/article/details/21011841 package com.lwj.app.customview; import android.content.Context; import android.graphics.PointF; import