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

如何在CoordinatorLayout中使用RecyclerView但不使用NestedScrollview?(滚动行为不起作用)

在CoordinatorLayout中使用RecyclerView但不使用NestedScrollView,可以通过以下步骤实现:

  1. 首先,在布局文件中,将CoordinatorLayout作为根布局,并在其中添加RecyclerView作为子视图。
代码语言:txt
复制
<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
  1. 接下来,在代码中,创建一个自定义的Behavior类,用于控制RecyclerView的滚动行为。该类需要继承自CoordinatorLayout.Behavior,并重写onStartNestedScroll()和onNestedScroll()方法。
代码语言:txt
复制
public class ScrollBehavior extends CoordinatorLayout.Behavior<RecyclerView> {

    @Override
    public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull RecyclerView child, @NonNull View directTargetChild, @NonNull View target, int axes, int type) {
        return true;
    }

    @Override
    public void onNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull RecyclerView child, @NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) {
        // 滚动事件处理逻辑
    }
}
  1. 在布局文件中的RecyclerView标签中,添加app:layout_behavior属性,并将自定义的Behavior类作为值。
代码语言:txt
复制
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior=".ScrollBehavior" />

通过以上步骤,就可以在CoordinatorLayout中使用RecyclerView而不使用NestedScrollView,并且自定义Behavior类可以控制RecyclerView的滚动行为。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供弹性计算能力,满足各类业务需求。详情请参考:云服务器产品介绍
  • 云数据库MySQL版(CDB):提供稳定可靠的云端数据库服务,支持高性能、高可用的MySQL数据库。详情请参考:云数据库MySQL版产品介绍
  • 云存储(COS):提供安全可靠、高扩展性的对象存储服务,适用于图片、音视频、文档等各类数据的存储和管理。详情请参考:云存储产品介绍
  • 人工智能机器翻译(TMT):提供高质量、高效率的机器翻译服务,支持多种语言之间的翻译需求。详情请参考:人工智能机器翻译产品介绍
  • 物联网开发平台(IoT Explorer):提供全面的物联网解决方案,帮助用户快速构建和管理物联网设备。详情请参考:物联网开发平台产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

scroll|enterAlways",声明工具栏的滚动行为标志; 6、演示页面的主体页面使用RecyclerView控件,并给该控件节点添加行为属性app:layout_behavior="@string...NestedScrollView继承自FrameLayout,其用法与ScrollView相似,都必须且只能带一个直接子视图,都是允许视图上下滚动等等。...NestedScrollView多出来的功能,也就是跟AppBarLayout配合使用,以便触发Toolbar的滚动行为,你可以把它当作是兼容了Android5.0新特性的增强版ScrollView。...这还得从CoordinatorLayout说起,查看CoordinatorLayout的源代码,发现它实现了接口NestedScrollingParent,奥秘就在其中,该接口定义了嵌套滚动的父辈行为,...: RecyclerView : 使用名称android.support.v7.widget.RecyclerView NestedScrollView : 使用名称android.support.v4

2K40
  • CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件

    比如:在CoordinatorLayout使用AppBarLayout,如果AppBarLayout的子View(ToolBar、TabLayout)标记了app:layout_scrollFlags...滚动事件,那么在CoordinatorLayout布局里其它标记了app:layout_behavior的子View(LinearLayout、RecyclerViewNestedScrollView...等)就能够响应(ToolBar、TabLayout)控件被标记的滚动事件。...布局下包裹一个可以滑动的布局,比如 RecyclerViewNestedScrollView(经过测试,ListView,ScrollView不支持)具有滑动效果的组件。...并且给这些组件设置如下属性来告诉CoordinatorLayout,该组件是带有滑动行为的组件,然后CoordinatorLayout在接受到滑动时会通知AppBarLayout 可滑动的Toolbar

    2.1K30

    细说 AppbarLayout,如何理解可折叠 Toolbar 的定制

    Android Support Desgin 这个包中提供了一系列的组件CoordinatorLayout、AppBarLayout、FloatingActionButton 等等。...所以除了使用 NestedScrollView,我们还经常使用 RecyclerView 和 SwipeRefreshLayout 作为配套的嵌套滑动组件,这是其它博文都没有提到的,希望大家注意。...当 AppBarLayout 的内容要从 CoordinatorLayout 外面进入内部时,我们用 enter 指代这种行为,对应的手势就是向下滑动。...而 enterAlways 这个标志与 scroll 配合使用可以改变这种行为,enterAlways 起作用时,当手指向下滑动时,Toolbar 会和 NestedScrollView 一起滑动,它们是同时滑动的...如果一个 CollapsingToolbarLayout 只有 Toolbar 的话,那么它就不起作用

    3K30

    Material Design 实战 之 第六弹 —— 可折叠式标题栏(CollapsingToolbarLayout) & 系统差异型的功能实现(充分利用系统状态栏空间)

    首先实现标题栏部分,这里使用CoordinatorLayout来作为最外层布局(我们在讲监测snackbar弹出,解决其遮挡悬浮按钮问题的时候用到过这个布局),如下: <android.support.design.widget.CoordinatorLayout...其中, scroll表示CollapsingToolbarLayout会随着水果内容详情的滚动一起滚动, exitUntilCollapsed表示当CollapsingToolbarLayout随着滚动完成折叠之后就保留在界面上...> 我们知道ScrollView允许使用滚动的方式来查看屏幕以外的数据, 而NestedScrollView...由于CoordinatorLayout本身已经可以响应滚动事件了, 因此我们在它的内部就需要使用NestedScrollViewRecyclerView这样可以响应滚动事件的布局。...另外,通过 app:layout_behavior属性指定一个布局行为,这和之前 第四弹 在RecyclerView的用法是一模一样的。

    2.3K40

    NestedScrolling机制之CoordinatorLayout.Behavior实战

    在上一讲我们讲了NestedScrolling机制,其实android很多有些常用的控件都是支持NestedScrolling机制的,RecyclerView,NestedScrollView等,...* child 使用此Behavior的View * directTargetChild 是target或是target的parent * target 处理滑动事件的view * axes 垂直滚动...target消耗的滚动时候触发,这个是水平滚动的实时距离 * dyUnconsumed view处于滚动状态,但是并不是由target消耗的滚动时候触发,这个是竖直滚动的实时距离 * type 同上 *..., boolean consumed); 是不是和我们上一讲的NestedScrollingParent回调方法很像,其实说白了CoordinatorLayout内部还是用NestedScrolling...View,GoodDetailsView,GoodsTitleView,GoodsListView,CoordinatorLayout分别对应detailsView,titleView,goodView

    88910

    CoordinatorLayout打造折叠式的顶部标题栏

    AppBarLayout下方与之并列的滑动控件有比如RecyclerViewNestedScrollView(与AppBarLayout同属于CoordinatorLayout的子View),这些并列的...类下的一个抽象类,一套全新的事件处理方式,它可以指定“作用View”和“被依赖View”,要改变行为的那个View就是child,dependency是作为触发器影响child的那个View。...内部的子View一般都要加上属性:app:layout_collapseMode="",常用值是parallax(视差滚动),pin(固定)。...以下是XML布局代码,注意根布局控件是CoordinatorLayoutRecyclerView一定要填充数据且充满否则无效果。...> 如果以上简单操作无法满足你的需求,最后附上参考博客文章 Android开发之CoordinatorLayout打造滑动越界弹性放大图片效果 使用CoordinatorLayout打造各种炫酷的效果

    2K30

    详解android特性之CoordinatorLayout用法探析实例

    当我在AS上新建一个module时,系统默认的最外层布局不再是我们熟悉的五大布局的一种,而是一个全新的布局:CoordinatorLayout。...下面来看一个最简单的例子,CoordinatorLayout与FloatingActionButton的使用,它可以使浮动按钮上下移动,为Snackbar流出空间来展示。...然后呢,我们需要定义一下AppBarLayout与滚动视图(RecyclerViewNestedScrollView等可以支持嵌套滚动的控件)supportlibrary包含了一个特殊的字符串资源@...CoordinatorLayout的工作原理是搜索定义了CoordinatorLayout Behavior的子view,不管是通过在xml中使用app:layout_behavior标签还是通过在代码对...当滚动发生的时候,CoordinatorLayout会尝试触发那些声明了依赖的子view。

    95541

    Android5.0和6.0之后新增的控件说明

    SwipeRefreshLayout Android 5.0 抽屉布局 DrawerLayout Android 5.0 滑动面板布局 SlidingPaneLayout Android 5.0 嵌套滚动视图...NestedScrollView Android 5.0 appcompat-v7 工具栏 Toolbar Android 5.0 recyclerview-v7 循环视图 RecyclerView...使用v4控件唯一需要注意的地方,是布局文件要引用完整路径的控件名称,抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4...使用v7与design库的控件,类似于使用自定义控件,不但要在布局文件引用完整路径的控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com...这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,design库依赖于appcompat-v7库,部分design控件NavigationView还依赖于recyclerview-v7

    1.3K20

    Android 仿高德地图可拉伸的BottomSheet的示例代码

    Bottom Sheet的内容默认是隐藏起来的,只显示很小一部分,可以通过在代码设置其状态或者手势操作将其完全展开,或者完全隐藏,或者部分隐藏。...对于Bottom Sheet的描述可以在官网查询:https://material.io/design/# 怎么使用?..."/ </LinearLayout activity使用 //底部抽屉栏展示地址 bottomSheet = findViewById(R.id.bottom_sheet); behavior...是Meterial Design的一个新控件,通过behavior用来协调其他组件, 实现联动,因此父布局必须是CoordinatorLayout 。...原则上来说,只要是可以滚动的View,在加上了这个属性后,都可以作为BottomSheet来使用,建议使用NestedScrollView或者RecyclerView

    1.8K30
    领券