首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 3D滑动菜单完全解析,实现推拉门式的立体特效

等滑动操作结束的时候,才让真正的菜单显示出来,然后将这个图片隐藏。...*/ private float xUp; /** * 左侧布局当前是显示还是隐藏。只有完全显示或隐藏时才会更改此值,滑动过程中此值无效。...当手指在界面上拖动来显示左侧布局的时候,就会进入到onTouch()方法中,这里会调用checkSlideState()方法来检查滑动的状态,以判断用户是想要显示左侧布局还是隐藏左侧布局,然后根据手指滑动的距离对右侧布局进行偏移...当整个滚动操作完成之后,才会将真正的左侧布局显示出来,再把镜像图片隐藏掉,这样用户就可以点击左侧布局上按钮之类的东西了。...,调用ThreeDSlidingLayout的setScrollEvent方法,将ListView作为绑定布局传入,这样就可以通过拖动ListView来显示或隐藏左侧布局。

3K100

SmartRefreshLayout dispatchTouchEvent 解读

我们写支持手指滑动操作的控件时,当你一根手指操作你发现没有问题,但是当多根手指的时候,会有一些问题。 很简单,注释该段代码, 会产生如下恶劣的效果(效果图我就不放了) 1....我们写支持手指滑动操作的控件时,当你一根手指操作你发现没有问题,但是当多根手指的时候,会有一些问题。...·在不同的条件下,下拉刷新组件可能作出 视图偏移 、刷新并执行刷新动画、进入二楼、回弹动画 等视觉操作。...在本章节开始,第一张大图上的step2,发生ActionDown事件时,将其传递给RefreshContentWrapper,并持有此MotionEvent。...·在不同的条件下,下拉刷新组件可能作出 视图偏移 、刷新并执行刷新动画、进入二楼、回弹动画 等视觉操作。

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    React Native组件(二)View组件解析

    它用来定义当View组件的子组件的宽高超过View组件宽高时的行为,默认值为hidden,即隐藏超出的部分。...这个回调也会发生在系统直接终止组件的事件处理,例如用户在触摸操作过程中,突然来电话的情况。...比如一个地图组件上覆盖了一个图像组件用来显示信息,但是我们不想这个图像组件影响用户的手指拖动地图的操作,这时就可以使用图像组件从View组件继承得到的pointerEvents属性来解决这个问题。...它的一个特殊的与性能优化相关的属性,通常在ListView和ScrollView中使用,当组件有很多子组件不在屏幕显示范围时,可以将removeClippedSubviews设置为true,允许释放不在显示范围子组件...在Android平台上,这对于只修改透明度、旋转、位移和缩放的动画和交互是很有用的:视图不必每次都重新绘制,显示列表也不需要重新执行,纹理可以被重用于不同的参数。

    2.5K60

    【Hybrid开发高级系列】ReactNative(七) —— RN组件专题

    onSlidingComplete函数         当用户已经完成改变它的值后,调用回调函数(例如,当滑动块被释放)     onValueChange函数         当用户拖动滑动块时,连续不断的调用回调函数...标题和子标题被扩展这样以来标志和导航图标显示在左边,标题和副标题在中间并且操作 在右边。         如果工具栏具有唯一子级,它将显示在标题和操作之间。...some_icon')     • show :当把这个操作显示为一个图标或隐藏在溢出菜单中时:always , ifRoom或never     • showWithText :布尔值,是否显示图标旁边的文本...当这个属性 设置为false时,相机的螺旋角被忽略,并且map上总是显示为好像用户直接向下看。     ...3.11 无反馈触摸 3.11.1 成员函数     onLongPress函数     onPress函数         释放触摸时该函数被调用,但如果触摸被取消则不调用(例如被窃取了应答器锁的滚动取消

    58540

    Android开发笔记(一百零一)滑出式菜单

    现在我们既希望两个子视图的宽度是match_parent,又希望能够拖动两个子视图,还有没有办法呢?...办法肯定是有的,在《Android开发笔记(三十五)页面布局视图》中,我们提到margin和padding都可用来设置空隙,空隙的数值都是正数,其实空隙值也能是负数,负数表示该视图被隐藏了一部分,仿佛一张纸插了部分纸面到书中...所以我们可以给视图添加触摸监听器OnTouchListener,在触摸坐标发生变化的同时,给菜单子页面隐入隐出对应的宽度,从而达到抽屉式拉出菜单的效果。...2、菜单默认在左边页,内容默认在右边页,所以首次加载视图时,页面要自动滑到右边的内容页(调用scrollTo方法滚动到内容页)。...滑出菜单SlidingMenu SlidingMenu开发步骤 前面说的两个侧滑效果,都依赖于手势触摸事件,实际开发中由于页面上很多控件都要响应点击事件,其实不可能一一接管页面触摸事件。

    1.2K70

    如何处理手势冲突 | 手势导航连载 (三)

    不幸的是, 进度条太靠近主屏手势区域 (Home Screen Gesture Area),所以当用户在该区域滑动时,系统把它错误地判断为用户是要执行快速切换应用的操作,这也会让用户感到困惑。...粘性沉浸模式: 用户可以通过在系统栏上滑动来暂时退出沉浸模式 这里我们向您进一步解释一下流程图里的内容。 问题 1: 应用需要隐藏导航栏或状态栏吗?...在问题 3 中回答 "是" 的视图,是否需要用户在其上滑动或拖拽?...如果用户可以将视图滚动到手势交互区域之外,则应该视为没有交互冲突。 您也许已经注意到,在流程图中多图显示控件 (ViewPager) 在此处回答 "否"。...手势区域排除 API 通常会在两个地方被调用: 当视图被布局时 (onLayout),或是当视图被绘制时 (onDraw)。

    5K30

    行为变更 | Android 12 中不受信任的触摸事件

    具体地说,就是在 Android 12 中,如果触摸事件是从一个不同的应用窗口传递的,那么此事件会被屏蔽。...有着透明背景且无 UI 元素的窗口 在有着透明背景的窗口中展示某些 UI 的应用,可以在适当的时候在视图层面隐藏它们的 UI,同时添加 FLAG_NOT_TOUCHABLE 标志,这样用户就可以与下层的内容进行交互了...如果像上图一样,应用仅仅是隐藏了 UI,要么是通过删除子视图的方法隐藏,或是改变它们的可见性 (visibility) 并添加 FLAG_NOT_TOUCHABLE 标志来允许用户与下层的视图进行交互,...因为对下层其他应用的触摸事件会被屏蔽,所以这样的方法在 Android 12 上就不再起作用了 (注意与前面提到的豁免条件的区别,在这里我们改变的是内部视图,而不是窗口)。...半透明窗口 如果您使用了一个 TYPE_APPLICATION_OVERLAY 窗口,并需要在显示内容时允许触摸事件穿透下去,那您就必须降低窗口的不透明度,让用户能够合理地看到他们在窗口后所触摸的 UI

    1.4K30

    (转载非原创)Android系统编程入门系列之界面Activity交互响应

    对屏幕的触摸位置有了衡量标准,是不是就可以根据不同的位置做触摸操作了呢?说到触摸操作,也需要细化之后单独处理。Android系统将用户操作行为,大致分为三种:按下行为,滑动行为,抬起释放行为。...当把视图View作为用户的操作对象时,仍然可以重写上述界面响应的三个方法,但是系统视图往往也封装了一层更加简单粗暴的响应方法。...用户对视图的操作,往往就是点击(短时间内执行按下行为和抬起释放行为),长按(在执行按下行为后等待一段时间再执行抬起释放行为),拖拽(在执行按下行为后执行一段滑动行为之后再执行抬起释放行为)这些固定操作类型...那么,如果用户将手指触摸到屏幕上,会触发按下行为,该行为作为事件首先传递到根视图中,之后根视图再将该事件传递给子视图,子视图再将该事件传递给子视图的子视图,这样按照加载时的嵌套顺序一层层传递事件,称之为事件分发...而当启动界面Activity在被用户操作返回时,系统将回调该启动界面的onBackPressed()方法,之后将该Activity从栈中移出并销毁。

    42700

    2014-11-8Android学习------Android抽屉效果的实现案例--------动画Animation学习篇

    变量mIsShrinking:代表的意思是:当前的组件是否是隐藏的,这里有这个变量的存在,主要是防止我们不知道这个组件的尺寸是多少,不知道显示给我们看的界面上这个组件是否可见,还有第二个原因就是这个抽屉是不是可见的...如果抽屉方向是水平的话:delta为整个视图的宽度 接下来就是在画布上如何显示这个抽屉了,也是按照方向来的: if (mOrientation == VERTICAL) { canvas.translate...,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 public boolean onScroll(MotionEvent e1, MotionEvent...} return true; } /* * 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发 * 注意和onDown(...)的区别,强调的是没有松开或者拖动的状态 */ public void onShowPress(MotionEvent e) { // not used } // 用户(轻触触摸屏后

    1.5K20

    FloatWindowUtils 实现及事件冲突解决详解

    悬浮窗 悬浮窗即可以显示在宿主应用之外的 View 视图,理论上任何 View 都能以悬浮窗形式展示在宿主应用之外甚至锁屏界面,一般在工具类应用中使用的比较多,通过悬浮窗可以很方便的从外界与宿主应用进行交互...使其可以拖动 显然上面的 Button 只是能显示在系统屏幕上而已,并不能拖动,要使其能够拖动就要给它设置一个 View.OnTouchListener 来监听手指在屏幕上滑动的坐标然后根据这个坐标设置其位置...现在这个 Button 虽然可以跟着你的手指移动了,但是你会发现当你拖动一段较小距离时会有很大几率响应它的 Click 事件,这显然不能接受,在拖动这个 Button 的整个过程中会依次触发 ACTION_DOWN...、ACTION_UP,当 ACTION_MOVE 被触发时 ACTION_DOWN 会被释放,之后松开手指触发 ACTION_UP 是不会响应 Click 事件的, Click 事件的响应条件是 ACTION_DOWN...+ ACTION_UP,所以当我们拖动一个很小的距离时很容易造成 ACTION_DOWN 与 ACTION_UP 的连续触发而响应了 Click 事件,尤其是在 DPI 较高的设备上,下面是一个根据最小偏移量来判断是否应该响应

    2.9K20

    iOS开发UIScrollView使用详解 原

    YES时,你的滚动视图只能同一时间在一个方向上滚动,但是当你从对角线拖动时,是时刻在水平和竖直方向同时滚动的。...; 显示一个短暂的滚动指示器 @property(nonatomic,readonly,getter=isTracking)     BOOL tracking; 获取用户是否触及视图内容 @property...=isDecelerating) BOOL decelerating; 获取视图是否开始减速(用户停止拖动但视图仍在滚动) @property(nonatomic) BOOL delaysContentTouches...; 设置视图是否延迟处理触摸事件(会将消息传递给子视图) @property(nonatomic) BOOL canCancelContentTouches; 设置是否给子视图传递取消动作的消息(默认设置为...YES,当scrollView触发事件的时候,其子视图不能触发,如果设置为NO,则子视图会继续触发事件) - (BOOL)touchesShouldBegin:(NSSet *)touches withEvent

    1.7K30

    Android开发笔记(四十五)手势事件

    ,然后在触摸方法onTouch中由GestureDetector接管触摸事件 :  private ScrollTextView tv_rough; private GestureDetector...Activity中重写onTouchEvent方法,在该方法中由GestureDetector接管触摸事件。...监听器需要重写的方法 :  onDown : 在用户按下时调用 onShowPress : 已按下但还未滑动或松开时调用,通常用于pressed状态时的高亮显示 onSingleTapUp : 在用户轻点一下再弹起时调用...,通常用于点击事件 onScroll : 在用户滑动过程中调用 onLongPress : 在用户长按时调用,通常用于长按事件 onFling : 在用户飞快掠出一段距离时调用,通常用于翻页事件...下面示例代码演示了这么一个意图:当用户按下或者滑动时,当前控件需要响应手势事件,请上级视图不要拦截手势;当用户松开或取消时,当前控件已经处理完毕,允许上级视图拦截手势。

    1.3K30

    2014-10-27Android学习------布局处理(七)------26个字母的布局列表的监听事件处理-----城市列表应用程序

    该对象会在用户触摸手机屏幕时被创建。...该方法并不只处理一种事件,一般情况下三种触摸类型情况的事件全部由onTouchEvent方法处理: MotionEvent.ACTION_DOWN:屏幕被按下:当屏幕被按下时,会自动调用该方法来处理事件...:在屏幕中拖动:该方法还负责处理触控笔在屏幕上滑动的事件,同样是调用MotionEvent.getAction()方法来判 断动作值是否为MotionEvent.ACTION_MOVE再进行处理。...MotionEvent.ACTION_UP:屏幕被抬起:当触控笔离开屏幕时触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行 动作判断。...借助对于用户不同操作的判断,结合getRawX()、 getRawY()、getX()和getY()等方法来获取坐标后,我们可以实现诸如拖动某一个按钮,拖动滚动条,显示触摸的内容等等功能。

    48530

    探索 MotionLayout 动画世界

    Transition标签定义的可处理事件有三种:OnClick、OnSwipe、KeyFrameSet。 OnClick 用于处理用户点击事件。 targetId :被点击后触发动画的视图id。...OnSwipe 用户处理用户拖拽事件。 touchAnchorId :可以滑动并拖动的视图id(目标视图)。 touchAnchorSide :定义触摸点在目标视图中的位置。...这个属性通常用于实现一些放大缩小的效果,可以让用户通过手势对视图进行缩放。 dragThreshold :定义拖拽的最小阈值,当拖拽距离小于该值时,视图不会响应拖拽事件。...maxVelocity :定义最大速度,当拖拽速度超过该值时,视图将不再响应拖拽事件。 maxAcceleration :定义最大加速度,当拖拽加速度超过该值时,视图将不再响应拖拽事件。...bounceEnd :当拖拽到结束位置时弹簧会弹动。 bounceBoth :当拖拽到开始或结束位置时弹簧会弹动。 rotationCenterId :定义旋转中心的视图 ID。

    17910

    Android--仿淘宝商品详情(继续拖动查看详情)及标题栏渐变

    继续拖动查看详情有一个弹性动画的效果: 仔细分析这个效果我们知道上面的布局可以滑动,当滑动到下面的布局时候同时下面的布局依然可以滑动,所以我们自定义一个View来包含两个Scrollview,上面一个下面一个...下面我们来看一下代码实现: 1.首先我们重写拦截事件: 在DOWN行为时获取跟踪触摸屏事件的速率也就是VelocityTracker,设置mEvents=0,可以拖拽;当触发ACTION_POINTER_UP...当触发MOVE事件时,我们记录下拖拽的距离并且处理事件冲突。...当手指抬起触发UP事件时,通过判断y轴滑动速度以及手指滑动方向利用计时器实现上下View的滚动事件,这里详细介绍一下requestLayout()这个方法 我们可以理解为重新布局了一下view;...当Invalidate()被调用的时候,View的OnDraw()就会被调用,Invalidate()必须是在UI线程中被调用,如果在新线程中更新视图的就调用postInvalidate()。

    1.4K10

    基础篇章:关于 React Native 之 Touchable 系列组件的讲解

    当我们按下的时候,封装的视图的不透明度会降低,同时会有一个底层的颜色透过并被用户看到,使得视图变暗或变亮。...activeOpacity number 设置封装的视图在被触摸操作激活时用多少不透明度显示(通常在0到1之间)。...onHideUnderlay function 当底层隐藏后立即调用 onShowUnderlay function 同上面相反,显示时,立即调用 style 风格样式的使用同View的一样,这里就省略了...,不知道的去看View的style underlayColor 当视图被触摸或者点击时,显示的颜色 效果展示 我们还是拿前面那个Image和ScrollView中使用的例子,只不过我们现在给它加上按压效果...:这个组件仅限于在Android平台使用,顾名思义:就是触摸事件带有本地原声反馈效果。

    2K90

    基础篇章:关于 React Native 之 Touchable 系列组件的讲解

    当我们按下的时候,封装的视图的不透明度会降低,同时会有一个底层的颜色透过并被用户看到,使得视图变暗或变亮。...activeOpacity number 设置封装的视图在被触摸操作激活时用多少不透明度显示(通常在0到1之间)。...onHideUnderlay function 当底层隐藏后立即调用 onShowUnderlay function 同上面相反,显示时,立即调用 style 风格样式的使用同View的一样,这里就省略了...,不知道的去看View的style underlayColor 当视图被触摸或者点击时,显示的颜色 效果展示 我们还是拿前面那个Image和ScrollView中使用的例子,只不过我们现在给它加上按压效果...:这个组件仅限于在Android平台使用,顾名思义:就是触摸事件带有本地原声反馈效果。

    1.6K90

    Android Scroll分析

    概述 相对于Android2.x版本中常见的长按、点击操作,滑动的方式具有更友好的用户体验性。因此从4.x的版本开始,滑动操作大量出现在Android系统中。...所以要实现View的滑动,必须要监听用户的触摸事件,并根据事件传入的坐标,动态且不断的改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。...在触摸事件中,通过getX()和getY()所获得的坐标就是视图坐标系中的坐标。 ---- 触控事件-MotionEvent 触控事件MotionEvent在用户交互中,占据着举足轻重的位置。...,即绝对坐标 ---- 实现滑动的七种方法 不管使用何种方法,其实现的基本思路是一致的:当触摸View时,系统记下当前触摸点坐标,当手指移动时,系统记下移动后的触摸点坐标,从而获取到相对于前一次坐标点的偏移量...方法 概述 在View绘制时,会调用onLayout()方法来设置显示的位置。

    81520

    切换按钮-自定义控件-拖动效果

    是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸到屏幕 定义手指最后的坐标lastX...调用MotionEvent对象的getX() 方法,得到lastX的值 当手指在屏幕上移动 定义手指横向移动的距离dis 调用getX()-lastX就是移动的距离 定义滑动按钮的左边就是这个移动的距离...判断slideBtnLeft位于合理的位置,0到背景图的宽度-滑动按钮的宽度 调用invalidate()方法,刷新视图 onClick事件和onTouchEvent是有冲突 定义一个标志isDrag...变量,如果有拖动发生,就把这个变量赋值true 在onCllick()方法里面对这个变量进行判断 当手指抬起的时候 判断当前slideBtnLeft来确定当前按钮是开还是关的状态 slideBtnLeft...currentState; flushState(); } } private int lastX; /** * 触摸事件

    1.3K20
    领券