viewpager嵌套开源组件gesture-imageview实现图片浏览和缩放

Android解决ViewPager嵌套ViewPager中多层Fragment子ViewPager中加载不出来Fragment Android中ViewPager嵌套ViewPager先看代码:这一步处理最重要的是MyPagerAdapter构造方法中不能传入getActivity().getSupportFragmentManager()原因如下: 最近UI重新设计了一个店铺首页的效果,要用到ViewPager嵌套ViewPager才能实现效果,可是在子ViewPager中出现了加载不出来Fragment,由于里面用了多... 阅读详情

gesture-imageview的github地址。

下载后将包com.polites.android放入src中,如图:



直接可以在代码中构建gestureImageView的类实例并使用,在viewPager的adapter中重写:

		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			GestureImageView iv = new GestureImageView(mContext);
			iv.setImageBitmap(your-bitmap-here);
			((ViewPager) container).addView(iv, 0);
			return iv;
		}

可以说,当这个imageView单独使用时,它的功能是挺完美的。

但当前版本的imageview被外层滑动组件嵌套时会有问题,不能直接嵌套使用,当左右滑动时,会默认应用viewpager的滑动(即使你并不想滑动viewpager,只是想拖动放大了之后的图片而已)。

viewPager的应用详见issue#30

找到com.polites.android.GestureImageViewTouchListener,我们要做的,就是判断当前imageview是否是被放大的状态,如果当前imageview被放大了,就禁止父组件消费触摸事件。

新加变量:

	private boolean zoomed;
新加方法:
	public boolean isZoomed(){
		return zoomed;
	}
	public void setZoomed(boolean zoomed){
		this.zoomed = zoomed;
	}

新加一句代码,在每次改变lastScale之后,判断是否恢复到原始或者进行了缩放:

(你可以在文件中搜索lastScale以找到它)

		lastScale = currentScale;
		/**
		 * recalculate zoomed after lastScale changed.
		 */
		zoomed = !(Math.abs(lastScale - startingScale) < 0.01);

在onTouch方法的开头,补充:

	@Override
	public boolean onTouch(View v, MotionEvent event) {
		if (isZoomed())
			image.getParent().requestDisallowInterceptTouchEvent(true);
如果被缩放,就禁止父组件消费。


修改之后,当且仅当 gesture-imageview被缩小到原始规模时,才可以进行viewpager的换页。

效果图:


PS:之后的其他#issue中也提到了,如果能更好地支持viewpager,比如当图片的边界顶到屏幕边界时变可以切换图片等等就好了。







ViewPager,ScrollView 嵌套ViewPager滑动冲突解决,flutter跳转传参 break; case MotionEvent.ACTION_UP: break; } return super.dispatchTouchEvent(ev); } ScrollView 里面嵌套ViewPager导致的滑动冲突 外部解决法 如上面所述,从 父View ScrollView着手,重写 OnInterceptTouchEvent方法,在上下滑动的时候拦截事件,在左右滑动的时候不拦截事件,返回 false,这样确保子View 的dispatchTouchEvent方法会被调用,代码 如下 / 阅读详情

相关推荐

COMSOL金属氢化物-放氢过程

"层流"的出口设置压降函数,解决“找不到一致的初始值”问题,主要是一开始设置出口为1atm的话,压力场过渡太剧烈,不好找到初始解,要么就先算个稳态流场,这种也能求解。注:P0是根据实测PCT的插值曲线(函数名称为:p_iso)得到的,根据初始质量储氢量wtw0,和初始温度条件T0,然后根据函数p_iso(wtw0)*exp(-deltHd/R_const*(1/T0-1/303.15[K]))求解获得。若"初始步长"选择框不勾上,前面0~5s内的求解容易发散,然后求解失败。2、设置"达西定律"的。

qq_24800941的博客 1929

两种方法,教你解决 ViewPager 嵌套 ViewPager滑动冲突

当TouchEvent发生时,首先Activity将TouchEvent传递给最顶层的View,TouchEvent最先到达最顶层 view 的 dispatchTouchEvent ,然后由 dispatchTouchEvent 方法进行分发,如果dispatchTouchEvent返回true 消费事件,事件终结。如果dispatchTouchEvent返回 false ,则回传给父View的onTouchEvent事件处理;

程序员徐师兄的博客 2849

使用VNC可视化Docker容器

Docker容器可视化

Robert_Q的博客 1万+

Android-ViewPager嵌套使用探究

ViewPager的嵌套使用是一个很常见的问题,然而,最近又一次遇到ViewPager的嵌套使用问题。情景是这样的,需求上给出了这样的要求,需要实现内外两个ViewPager嵌套的效果,外部ViewPager控制着4个Tab的切换滑动,内部ViewPager控制着若干个二级Tab的滑动切换(这里可能是广告栏,也可能是榜单等),另外,当内部ViewPager滑动到最左或者最右的时候,外部ViewPager恢复滑动。需求刚一看的时候,确实不难,于是我立马想出了方案一。解决两个ViewPager滑动冲突问题,首先

eeeeety6208的博客 2434

国产FPGA逆袭!深度评测复旦微RFVU3P5G核心板在相控阵雷达中的表现

本文深度评测了复旦微RFVU3P5G核心板在相控阵雷达中的实战表现。该核心板凭借射频直采架构、高采样率ADC/DAC及丰富的DSP资源,在多通道同步精度、动态范围及系统稳定性等关键指标上表现出色,展现了国产FPGA在高端雷达应用中的硬核实力与供应链自主价值。

b0c1d2的博客 723

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

东城绝神 1368

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决这篇博客主要讲解一下几个问题 - 粗略地介绍一下View的事件分发机制 - 解决事件滑动冲突的思路及方法 - ScrollView 里面嵌套ViewPager导致的滑动冲突 - ViewPager里面嵌套ViewPager 导致的滑动冲突 - 轮播图的几种实现方式先看一下效果图ScrollView里面嵌套View

徐公,微信公众号同名 4万+

手把手教你调试RTL8201F:从芯片手册解读到LWIP驱动移植

本文详细解析了RTL8201F PHY芯片的开发流程,从寄存器配置到LWIP驱动移植,重点介绍了RMII模式下的特殊配置要点和调试技巧。通过实战案例和高级调试方法,帮助工程师解决网络性能问题,实现与FreeRTOS+LWIP协议栈的稳定集成。

ik678901234的博客 972

ViewPager嵌套ViewPager

两个ViewPager嵌套,实现无限循环即:A(1)-A2(B1)-A2(B2)-A(1) A:父ViewPager 有2个选项,B:为子ViewPager.同样有2个选项 A2即为B.

Shangri 2907

5G初始注册流程详解(2)-Registration Request

1:了解注册的本质,5G终端为什么要注册? 2:SUCI,SUPI,5G-GUTI的区别? 3:为什么会有COMPLETE REGISTRATION REQUEST呢?

weixin_53220301的博客 3794

YOLOv11改进策略【卷积层】| CVPR-2024 PKI Module 获取多尺度纹理特征,适应尺度变化大的目标

PKI Module是。

Limiiiing的博客 2705

ViewPager2嵌套ViewPager2(RecyclerView)滑动事件冲突

然而我们通过源码发现:getParent().requestDisallowInterceptTouchEvent(boolean)是决定是否拦截事件。官方通过get获取NestedScrollableHost第一层包裹的冲突View,如果冲突View层级深就会有问题。ViewPager+ViewPager就不会产生冲突,那是应为,官方ViewPager帮我们已经处理过,但是。java:我们通过getChildView()遍历拿到底层冲突View,可以完美解决滑动冲突问题。

qq_21467035的博客 4064

【YOLOv11改进- 主干网络】YOLOv11+RepViT: 从ViT的角度重新审视Mobile的CNN助力YOLOv11有效涨点;

本文给大家带来的改进内容是在YOLOv11中更换主干网络为RepViT,助力YOLOv11有效涨点,论文通过集成轻量级 ViT 的高效架构设计,逐步增强了标准轻量级 CNN(即 MobileNetV3)的移动友好性。这最终产生了一个新的纯轻量级 CNN 系列的主干网络。

qq_41304809的博客 785

面试题kkk

这篇文章摘要主要涵盖了Android开发中的核心知识点和技术难点,包括数据结构、Java与Kotlin语言特性、多线程与并发、内存管理、安卓组件与UI、IPC通信、数据库、多媒体处理、设计模式、性能优化、跨端开发等多个方面。文章详细解析了常见数据结构的使用与实现、JVM机制、内存泄漏分析与解决方案、Activity生命周期、事件分发机制、Handler原理、音视频处理、设计模式应用等核心内容,并提供了实际项目中的技术卡点与解决方案。此外,还涉及了性能优化策略、跨端开发差异、技术方案设计思路以及Git常用命令

mix39的博客 930

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ViewPager 嵌套ViewPager来搭建首页

我们平时在搭建项目的主页的时候,经常会使用Fragment+FragmentPagerAdapter来搭建,然后通过继承FragmentActivity来实现,但是有时候我们可能遇到首页可能是一个滑动的页面,然后每个页面中有需要嵌套多个页面,而且更变态的时候嵌套的页面中还需要滑动,这个时候我们想是不是可以使用ViewPager嵌套ViewPager呢? 但是实践之后我们发现ViewPager嵌套Vi

寻梦者 1024

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

浅谈布局中ViewPager嵌套ViewPager问题

在开发布局中,从功能性,用户体验等方面设计时,会出现ViewPager中嵌套ViewPager的问题,下面从两方面考虑解决这个问题 一、外层ViewPager不滑动,内层ViewPager滑动 自定义外层viewpager,重写onInterceptTouchEvent方法,代码如下: public class BaseViewPager extends ViewPager{ priv

李标标的博客 827

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

gesture-imageview图片缩放库打成jar包

esture-imageview是一个第三方图片缩放插件,支持多手指缩放图片,并且支持双击缩放,非常方便,插件下载 https://github.com/jasonpolites/gesture-imageview,在网页右边有个“DownLoadZip”按钮,点击下载一个压缩包。   1、  解压,打包主要用到是main文件夹。 2、  打开Eclipse,导入main文

愤怒的油条 1220

viewpager嵌套viewpager

viewpager嵌套viewpager需要重写viewpager的onTouchEvent方法 package com.lamp.view; import android.content.Context; import android.graphics.PointF; import android.support.v4.view.ViewPager; import androi

android_koukou的博客 528

ScrollView嵌套ViewPager问题解决方案

问题分类最近在做公司项目,有一种需求就是scrollView嵌套多个viewpager,而且还有的viewpager里是fragment,fragment里面是gridview。这里面有比较多的问题,大致将问题分为两类,如下所示: 1.两者嵌套的滑动冲突问题。这种问题网上有很多现成的方案,这里我就不多说了。 2.viewpager高度不显示问题,这里我主要讲的就是这个。ViewPager高度不显

qq_34184412的博客 1万+

ViewPager2嵌套滚动解决方案

使用以下类对ViewPager2中的recycleView进行包裹即可。

SOLO的博客 3492

android viewpager 嵌套fragment,fragment嵌套viewpager viewpager嵌套fragment 的bug

项目需要的框架是上面是可滑动隐藏的头布局,下面是滑动切换的viewpager之前填充viewpager 用的adapter是package com.example.panghaha12138.testapp;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGro...

weixin_30303839的博客 451

Android ViewPager嵌套ViewPager+Fragment问题

最近在项目中又遇到了ViewPager互相嵌套的问题,代码实现很简单,主要可能出现的问题是子ViewPager的fragment滑动出现白屏,这个问题的出现是FragmentManager方法调用错误,android中涉及到FragmentManager的方法主要有:getChildFragmentManager()、getFragmentManager()和getSupportFragmentM...

仰望星空 6711

Android Studio安卓开发ZoomImageView图片放大缩小与ViewPager冲突问题

最近有个需求是做一个点击图片放大放小功能,然后参考了自定义ZoomImageView这个类来做,但是做到后面发现缩小之后,滑动的时候会与ViewPager冲突,他会滑到下一页,我肯定是希望缩小滑动的时候,应该靠近边界了再滑动到下一页,网上找了很多方法,有说用getParent().requestDisallowInterceptTouchEvent(true);这个拦截,但我感觉不是明智之举。我自己用的是一MVVM的架构,然后设置适配器,观察数据请求,如果请求到了,就把list集合传到适配器显示就行了。

阿文的博客 1268
上一篇: android 4.4kitkat手机视频录制【screenrecorder】并转换为GIF格式
下一篇: android新组件RecyclerView使用介绍和进阶使用,替用Gallery
ipip2005
博客等级 码龄17年 100粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值