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

嵌套滑动通用解决方案--NestedScrollingParent2

当时没有给出demo,只有代码片段,可能导致阅读起来不很清晰,所以这篇就专门再来详细分析相关知识,给出通用的嵌套滑动的解决方案,且附上GitHub的Demo。...按分析的view结构直接实现 可见,在tabLayout是吸顶状态,无法继续滑动内层RecyclerView(抬起手指继续滑也不行)。(点击查看相关代码) 那么该咋办呢?...根据滑动冲突的相关知识,我们知道一定是外层RecyclerView拦截了触摸事件,内层RecyclerView无法获取事件,就无法滑动了。...所以按照正常处理滑动冲突的思路处理--当tab没到顶部时,parent拦截事件,tab到顶部时 parent就不拦截事件,但是由于手指没抬起来,所以这一事件序列还是继续给parent,不会到内部RecyclerView...; } } } return null; } /** * 传入内部RecyclerView

4.4K31

JankStats 推出 alpha 版本

JankStats 通过提供单一 API 来报告每帧的时间,从而简化您的工作,并会在内部委派适当机制 (比如 API 24 以上会委派给 FrameMetrics)。...例如,FrameMetrics API (在 API 24 版本中推出,JankStats 内部也有使用) 可以告诉您绘制帧需要多长时间,而您也可从中获取卡顿信息,但它无法让您知晓当时应用中的具体情况。...但是,除非必须要在内部构建这种基础架构,那每个人都有许多别的工作要做。因此,卡顿问题通常得不到量化测试,而性能问题自然也无法解决。...同样,Android Vitals 信息中心也可以告诉您,应用存在性能问题,但无法告诉您问题发生时应用的具体运行情况。因此,您很难通过这些信息来知晓应该如何处理出现的问题。...例如,您可能想知道,某个特定的 Activity 或 Fragment 在何时处于活动状态,或 RecyclerView 何时处于滚动状态。

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

    深入浅出 RecyclerView

    瀑布流与滚动方向 前面已经介绍过,RecyclerView实现瀑布流,可以通过一句话设置:recycler.setLayoutManager(new StaggeredGridLayoutManager...其中 StaggeredGridLayoutManager 第一个参数表示列数,就好像 GridView的列数一样,第二个参数表示方向,可以很方便的实现横向滚动或者纵向滚动。...好吧,翻遍了 API 列表,就找到了个 OnItemTouchListener ,这特么什么鬼,我干嘛要对每个 item 监听触摸屏事件。...android:divider="@android:color/black" android:dividerHeight="2dp" 而在RecyclerView里面,想实现这两种需求,稍微复杂一点,需要自己继承...这主要是因为 RecyclerView 内部的缓存结构并不是像 ListView 那样去缓存一个 View,而是直接缓存一个 ViewHolder ,在 ViewHolder 的内部又持有了一个 View

    2.1K60

    RecyclerView必知必会

    但是RecyclerView的出现会让很多开源项目被废弃,例如横向滚动的ListView, 横向滚动的GridView, 瀑布流控件,因为RecyclerView能够实现所有这些功能。...创建ViewHolder:在NormalAdapter中创建一个继承RecyclerView.ViewHolder的静态内部类,记为VH。...上面用斜体字标识的方法比较难懂,不过没关系,因为Android提供了SimpleItemAnimator类(继承自ItemAnimator),该类提供了一系列更易懂的API,在自定义Item Animator...无法添加onItemClickListener最佳的高效解决方案这篇文章给出了通过recyclerView.addOnItemTouchListener(...)添加点击事件的方法,但我认为根本没有必要费这么大劲对外暴露这个接口...RecyclerView虽然没提供直接的API,但是也可以很简单地实现。 创建一个继承RecyclerView的类,记为EmptyRecyclerView。

    6.5K20

    从0系统学Android--3.6 RecyclerView

    而且 ListView 的扩展性不好,只能实现数据的纵向滚动效果,如果想要实现横向滚动的话就做不到了。 为此 Android 提供了更为强大的控件--RecyclerView。...是我们在 FruitAdapter 中定义的一个内部类。...首先在内部定义了一个类 ViewHolder 这个类是继承自 RecyclerView.ViewHolder 的,在构造方法中需要传入一个 View 参数,这个参数就是我们 RecyclerView 的子项的最外层的布局...,然后就可以通过 findViewById() 方法来获取内部的各个控件。...3.6.2 实现横向滚动和瀑布流布局 Listview 的可扩展性不好,只能实现纵向滚动,如果想要横向滚动的话 ListView 就做不到了。下面用 RecyclerView 来实现横向滚动。

    1.3K20

    RecyclerView 必知必会

    但是RecyclerView的出现会让很多开源项目被废弃,例如横向滚动的ListView, 横向滚动的GridView, 瀑布流控件,因为RecyclerView能够实现所有这些功能。...创建ViewHolder:在NormalAdapter中创建一个继承RecyclerView.ViewHolder的静态内部类,记为VH。...上面用斜体字标识的方法比较难懂,不过没关系,因为Android提供了SimpleItemAnimator类(继承自ItemAnimator),该类提供了一系列更易懂的API,在自定义Item Animator...无法添加onItemClickListener最佳的高效解决方案(http://blog.csdn.net/liaoinstan/article/details/51200600)这篇文章给出了通过recyclerView.addOnItemTouchListener...RecyclerView虽然没提供直接的API,但是也可以很简单地实现。 创建一个继承RecyclerView的类,记为EmptyRecyclerView。

    3.7K70

    RecyclerView 必知必会

    但是RecyclerView的出现会让很多开源项目被废弃,例如横向滚动的ListView, 横向滚动的GridView, 瀑布流控件,因为RecyclerView能够实现所有这些功能。...创建ViewHolder:在NormalAdapter中创建一个继承RecyclerView.ViewHolder的静态内部类,记为VH。...上面用斜体字标识的方法比较难懂,不过没关系,因为Android提供了SimpleItemAnimator类(继承自ItemAnimator),该类提供了一系列更易懂的API,在自定义Item Animator...无法添加onItemClickListener最佳的高效解决方案这篇文章给出了通过recyclerView.addOnItemTouchListener(...)添加点击事件的方法,但我认为根本没有必要费这么大劲对外暴露这个接口...RecyclerView虽然没提供直接的API,但是也可以很简单地实现。 创建一个继承RecyclerView的类,记为EmptyRecyclerView。

    5.2K90

    Material Design 实战 之第四弹 —— 卡片布局

    其中, scroll 表示当RecyclerView向上滚动时,Toolbar会跟着一起向上滚动并实现隐藏; enterAlways 表示当RecyclerView向下滚动时...AppBarLayout实际上是一个垂直方向的LinearLayout,它在内部做了很多滚动事件的封装,并应用了一MaterialDesign的设计理念。...当AppBarLayout接收到滚动事件的时候,它内部的子控件是可以指定如何去影响这些事件的, 通过app:layout_scrollFlags属性就能实现。...其中, scroll表示当RecyclerView向上滚动时,Toolbar会跟着一起向上滚动并实现隐藏; enterAlways表示当RecyclerView向下滚动时,Toolbar会跟着一起向下滚动并重新显示...运行程序可见, 随着我们 向上滚动RecyclerView会Toolbar消失掉; 向下滚动RecyclerView,Toolbar又会重新出现; 滚动到Toolbar的一半时松开手指,Toolbar

    3.1K10

    一篇博客理解Recyclerview的使用

    例子1:用RecyclerView实现一个图片滚动的列表 代码如下: public class MainActivity extends ActionBarActivity { private RecyclerView...添加OnItemClickListener回调 效果很不错,这就是RecyclerView的基本用法了,但细心的你会发现,竟然没有提供setOnItemClickListener这个回调,也就是无法响应点击事件...实现滚动时内容联动 例子3:RecyclerView制作相册效果 效果:在原工程的基础上进行修改,改成相册效果,即上面显示一张大图,下面的RecyclerView做为图片切换的指示器。...android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height...我就观察它内部的View,最后发现,第一个显示的始终是它第一个child,至于getChildPosition这个看方法就看出来了。

    1.1K30

    Android开发笔记(一百三十五)应用栏布局AppBarLayout

    节点包裹Toobar; 5、Toobar节点添加滚动属性app:layout_scrollFlags="scroll|enterAlways",声明工具栏的滚动行为标志; 6、演示页面的主体页面使用RecyclerView...下面是AppBarLayout结合RecyclerView实现的工具栏向上滚动效果截图: ?...RecyclerView是其中一个特工,它可用来替代ListView和GridView;替代ScrollView的则另有其人,它便是嵌套滚动视图NestedScrollView,在Android5.0之后的...: RecyclerView : 使用名称android.support.v7.widget.RecyclerView NestedScrollView : 使用名称android.support.v4...2、AppBarLayout内部的高度也可能变化,比如它嵌套了可折叠工具栏布局CollapsingToolbarLayout,有关可折叠工具栏布局的详细介绍参见《Android开发笔记(一百三十六)可折叠工具栏布局

    2.9K40

    Floating Action Button-Android M新控件

    实际上只需要指定一个布局文件,就可以看到效果了,只不过是这时候的FAB是固定在屏幕指定位置的,而无法随之滚动,不着急,下面会介绍如何设置成可滚动的FAB 属性介绍 FAB 默认使用应用主题中设置的浮起色作为按键背景...用RecyclerView替换ListViews 目前,你需要用RecyclerView来替换ListView。就如这节所描述的,RecyclerView是ListView的继承者。...你可以查看这篇指南,它帮助你过渡到RecyclerView .support.v7.widget.RecyclerView android:id="@+id/lvToDoList"...为了解决此问题,API21+ 的版本统一定义底部与右边缘空白为 16dp,Lollipop 以下版本统一设置为 0dp. values/dimens.xml 滚动而隐藏,向上滚动而重现: ListView listView = (ListView) findViewById(android.R.id.list); FloatingActionButton

    2K40

    【Android从零单排系列二十六】《Android视图控件——ScrollView》

    前言 小伙伴们,在上文中我们介绍了Android视图组件RecyclerView,本文我们继续盘点,介绍一下视图控件的ScrollView。...与RecyclerView相比,ScrollView更适用于静态的、不需要复用子项的情况。...-- 在这里添加您的内容视图 --> 在ScrollView内部添加内容视图。在ScrollView标签内部,可以放置各种UI组件来展示要滚动的内容。...您可以为ScrollView和其内部的内容视图指定各种属性,例如背景颜色、内外边距、滚动条样式等。...在处理大数据集或需要与后端交互的情况下,推荐使用RecyclerView等更高级的容器组件来动态加载和展示数据,从而提供更好的性能和用户体验。

    2.1K20

    SwipeDelMenuLayout

    核心实现原理 静态变量管理菜单状态 为了避免多个菜单同时打开,控件内部使用了静态变量记录当前激活的 SwipeDelMenuLayout,在每次打开或关闭菜单时,都会先检测并处理已打开的菜单。...属性动画与平滑滚动 提供了属性动画(平滑滚动)和 Scroller(精确滑动)两种实现方式,开发者可以根据需求切换动画效果。...事件分发与手势冲突处理 自定义 ViewGroup 内部对 onInterceptTouchEvent 和 onTouchEvent 进行了细致的处理,屏蔽了多指滑动冲突,保证滑动操作的流畅性和唯一性...阻塞模式 打开菜单后无法滑动其他 Item,需先关闭菜单。 使用场景 适用于所有 ViewGroup 中的侧滑操作,比如 LinearLayout、FrameLayout 等。...特别适合需要自定义布局的复杂场景,例如混合使用 RecyclerView 和静态布局。

    26000
    领券