直接代码,请看注释

/** 引入相关类* */import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.widget.Gallery;/** 继承Gallery,重写onInterceptTouchEvent(MotionEvent ev)方法* */public class BetterGallery extends Gallery {private float mLastMotionX;//滑动过程中,x方向的初始坐标private float mLastMotionY;//滑动过程中,y方向的初始坐标private int mTouchSlop;//手指大小的距离/** 三个构造函数* */public BetterGallery(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}public BetterGallery(Context context, AttributeSet attrs) {super(context, attrs);init();}public BetterGallery(Context context) {super(context);init();}/** 初始化,设置x方向移动的最小距离为手指大小时,拦截处理事件,可以设置需要的大小* */private void init() {final ViewConfiguration configuration = ViewConfiguration.get(getContext());mTouchSlop = configuration.getScaledTouchSlop();}/** 重写的方法,最关键的地方* */public boolean onInterceptTouchEvent(MotionEvent ev) {final int action = ev.getAction();//获取触摸事件类型final float x = ev.getX();//每次触摸事件的x坐标final float y = ev.getY();//每次触摸事件的y坐标switch (action) {case MotionEvent.ACTION_DOWN://按下事件mLastMotionX = x;//初始化每次触摸事件的x方向的初始坐标,即手指按下的x方向坐标mLastMotionY = y;//初始化每次触摸事件的y方向的初始坐标,即手指按下的y方向坐标break;case MotionEvent.ACTION_MOVE:final int deltaX = (int) (mLastMotionX - x);//每次滑动事件x方向坐标与触摸事件x方向初始坐标的距离final int deltaY = (int) (mLastMotionY - y);//每次滑动事件y方向坐标与触摸事件y方向初始坐标的距离boolean xMoved = Math.abs(deltaX) > mTouchSlop && Math.abs(deltaY/deltaX) < 1;//判断触摸事件处理的传递方向,该业务中是,//x方向的距离大于手指,并且y方向滑动的距离小于x方向的滑动距离时,Gallery消费掉此次触摸事件//如果需要,请在您的业务中,改变判断的逻辑if (xMoved) {//Gallery需要消费掉此次触摸事件return true;//返回true就不会将此次触摸事件传递给子View了,我的业务中是ListView
            }break;}return false;//将此次触摸事件传递给子View,即ListView
    }
}

转载于:https://www.cnblogs.com/denghaoming/archive/2012/09/14/2684302.html

解决!Gallery中嵌套ListView,Gallery不能滑动的问题相关推荐

  1. scrollview中嵌套listview产生冲突问题

    在scrollview中嵌套listview或者gridview时 如果listview或者gridview的高度时wrap-content会导致两者只显示一行多一点 原因: listview和gri ...

  2. ScrollView中嵌套ListView

    放置比较少的ListView组件效果图:                         Item布局文件  list_view_item.xml  布局文件的内容: <RelativeLayo ...

  3. Android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动

    有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个 scrollview 被向下滑动直到ListV ...

  4. 仿Android GridView以解决ScrollView中嵌套自带GridView滚动条冲突问题

    有时候做Android开发难免会遇到ScrollView中嵌套GridView现象,一旦要他们结合使用就会出现一堆问题,这里考虑使用LinearLayout仿GridView去解决一下这个问题! 1. ...

  5. Android listview 中嵌套 listview

    在 父listview中 adapter的 getview 中 设置 子listview 的 adapter 之后 添加下面方法,传入子listview. public void setListVie ...

  6. [Android]解决ClickableSpan中点击后ListView中item的长按冲突的问题

    以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3823429.html 项目中碰到一个问题,情景是这样的: 有一个Lis ...

  7. Android中ExpandableListView中嵌套ListView

    最近项目挺紧张,一直没有时间总结学习,今天把最近遇到的一个奇葩的设计,做一下总结.其他的好多的APP中做的通讯录都类似微信通讯录这样,但是有这样一个需求的设计. 就是分为两个组,第一个组不需要A-Z的 ...

  8. ScrollView中嵌套ListView控件,数据无法显示完全

    为什么80%的码农都做不了架构师?>>>    public void setListViewHeightBasedOnChildren(ListView listView) { / ...

  9. 四种方案解决ScrollView嵌套ListView问题

    在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...

  10. android中ScrollView嵌套ListView或GridView显示位置问题

    Android中ScrollView中嵌套ListView或GridView时在开始进入界面时总是显示中间位置,开头的位置显示不出来.这种情况下只需要在ScrollView的父控件中添加以下两行代码即 ...

最新文章

  1. 如何在vc的拆分窗口中使用CFormView派生类
  2. oracle链接字符串java,java连Oracle连接字符串写法
  3. DEDE 5.7分类联动BUG
  4. beanshell变量无法传到jmeter_学会BeanShell,才敢说自己懂Jmeter
  5. 对qps、tps、pv、uv的理解
  6. 一云多端,连接万物:智能接入网关2.0升级技术揭秘
  7. for语句中声明变量
  8. JSP指令标记和动作标记
  9. Linux安装tomcat并使用+热部署
  10. QGIS 3初级到高级
  11. 《大学之路》读书笔记(上)范文3700字
  12. SQLServer身份证号或手机号字段隐藏某几位显示
  13. 【论文笔记】Neural Relation Extraction with Multi-lingual Attention
  14. java实现windows下amr转换为mp3(可实现微信语音和qq语音转换)
  15. 2021软科计算机科学与技术,2021软科世界一流学科即将重磅发布!
  16. C语言版家谱管理系统
  17. ArcGIS栅格按照象元大小生成矢量的方法
  18. Evm链原生代币转账
  19. 搜集整理的一些博客导航
  20. Meego系统全面解析

热门文章

  1. 【渝粤教育】电大中专幼儿园课程论作业 题库
  2. 【渝粤教育】广东开放大学 企业文化学 形成性考核 (57)
  3. CMake快速入门教程-实战
  4. bzoj1396: 识别子串
  5. (转)10条名言,让你少走弯路
  6. 通信原理实践(四)——模拟通信系统性能分析
  7. 一款超级炫酷的编辑代码的插件 Power Mode
  8. spring注解方式配置以及spring4的泛型注入 (4)
  9. js判断手机横竖屏【转】
  10. 处理顶点——自动计算顶点缓冲中所有顶点的法线