首页
学习
活动
专区
圈层
工具
发布

聊聊Android嵌套滑动

之前UI交互类的东西接触的也比较少,于是把Android里面嵌套滑动相关的内容也过了一遍,在这里做一些分享。...在嵌套滑动控件的场景中,可以在Android的事件分发机制本身做一些处理,外部拦截或者内部消化触摸事件。...因为有了一次 pre-scroll 操作,我们才可以让子view在第一次执行嵌套滑动分发的时候,带上自己没有消费的距离,也就是 unconsumedY : 到这里 Android 的嵌套滑动机制就比较明了了...嵌套滚动方案的选择 有了这些接口之后,我们可以看到其实内置的Android 控件都支持了滑动嵌套,那么是否我们平时使用的方法都是正确的呢?...= STATE_DRAGGING 就成立了,这时候事件就被 CoordinatorLayout 拦截下来,内部的滑动控件就开始正常滑动。 总结 到这里,Android的嵌套滑动机制就介绍完了。

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

    Android 中 View 的滑动

    Android View控件的滑动是 Android 的一个重要内容。...在 View 需要变换位置时,为其添加适当的滑动效果,获得更好的用户体验,下面来看一下怎样去实现 View 的滑动: 1、scrollBy / ScrollTo 方法: View 控件提供的两个方法...在上面的滑动中,效果是瞬间完成的,在 APP 中,这种效果会给人一种非常突兀的感觉。Scroller 类正是为了给 View 的滑动添加动画效果产生的。...View 的 computeScroll() 方法: 3、调用 startScroll(int startX, int startY, int dx, int dy)方法开始 View 的滑动,参数分别为开始的位置和横纵方向滑动的位移...成功的实现了滑动效果! 不知道小伙伴们发现没有,在这里实现的滑动都是对当前控件的全部的子 View 进行滑动,这样在一定程度上限制了滑动的灵活性。那么我们如何处理单个 View 的滑动呢?

    1.6K40

    Android 简单实现控件滑动固定效果

    控件滑动固定 实现思路:   首先我们需要实时的获取滑动的Y值scrollDistanceY(可以理解为滑动了的距离),可以通过ScrollView的getScrollY();方法来获取。...需要特殊处理手指离开后屏幕还在滑动导致 scrollDistanceY改变的情况。   在xml布局中,绿色的固定布局View我们需要写两个,一个与头部布局重合,位于APP顶部,另一个与列表中。...* 这是一个能够实时向主View提供滑动距离Y值的ScrollView(滑动的高度) * 能够运用此ScrollView实现在内部View固定顶部布局的需求 */ public class FixedHeadScrollView...=scrollDistanceY){//如果不相等,说明手指离开后,屏幕仍然在滑动,继续更新scrollDistanceY的值 scrollDistanceY...记得处理手指离开屏幕后,界面仍然在滑动,导致外层固定布局的显示隐藏控制有误。

    2.8K30

    android 横向滑动分类效果实现

    大家看上面的分类栏,我们这个分类数目不固定,要求可以一个一个横向滑动。不是viewPager分页 一屏幕放4个,一滑动一下子显示下一页的4个。当然这种效果一般都是用viewPager实现。...这个横向的列表之前的博客已经写过了用的HorizontalListView,所以这个横向滑动列表的实现 我就不再写一次了 ,感兴趣的可以直接看这篇文章 Android 横向ListView实现  但是用这个实现了列表后...private GestureDetector gd = new GestureDetector(this); private int FLING_MIN_DISTANCE = 200;// 水平方向手指滑动距离最小值...private int FLING_MIN_VELOCITY = 0;// 垂直方向手指滑动距离最小值 @Override public boolean onFling(MotionEvent...onTouch(View view, MotionEvent motionEvent) { return gd.onTouchEvent(motionEvent); } 判断滑动状态

    1.8K10

    一文解决Android View滑动冲突

    前言 上一篇文章我们讲述了「Android View事件分发机制」。...如果你对View的事件分发还不熟悉,建议先去看一下 一文读懂Android View事件分发机制 它是我们今天滑动冲突解决的理论基础!...2 滑动冲突的常见场景与处理思路 当我们内外两层View都可以滑动时候,就会产生滑动冲突! 常见的滑动冲突场景: ?...同方向,横向滑动冲突 天猫的这个是同方向,横向滑动冲突的场景,内外两层都是可以横向滚动的。它的处理逻辑也很明显,根据用户滑动的位置来判断到底是那个View需要响应滑动。...虽然这并不是常规的滑动冲突(子View不是滑动的),但是造成的原因其实是一样的,没有做滑动判断导致父View不能正确响应滑动事件。

    2.4K30

    Android 滑动效果入门篇(二)—— Gallery

    Gallery 是Android官方提供的一个View容器类,继承于AbsSpinner类,用于实现页面滑动效果。...主要是为了是循环接近无限往复循环,使position无限大,循环在实践应用上不容易结束(理论上会结束,即2^31-1约20亿次循环后) 修改2,通过取余,使图片能够重复利用并显示 修改3,由于起始位置如果是0,则向右滑动左侧将无法循环...数组的下边界),因此开始应设置起始位置为imgAdapter.imgs.length的整数倍 效果3 —— “点击”和“选中”事件 1、点击事件OnItemClickListener,是需要用手点击才触发,滑动时不触发...2、选中事件OnItemSelectedListener,是当图片滑到屏幕正中,则视为自动选中,在滑动的过程中会触发 适用场景: 1、点击事件OnItemClickListener,是在确定要选中该项时...可以用来制作gallery循环显示效果) gallery.setOnItemClickListener(clickListener); // 设置点击图片的监听事件(需要用手点击才触发,滑动时不触发

    1.2K20

    Android View滑动冲突全面解析-夯实基础

    滑动冲突这件事我们日常开发中应该是经常见,在我刚学习Android的时候,viewPager 与 SlidingMenu 侧滑栏的冲突也是搞得我一头雾水,不知道该怎么去解决,所以经常会去采用问百度的做法...; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4...; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4....view.ViewPager; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent...更多Android开发知识请访问—— Android开发日常笔记,欢迎Star,你的小小点赞,是对我的莫大鼓励。 参阅:Android开发艺术探索

    92220
    领券