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

NestedScrollView不能在CoordinatorLayout - Android中滚动

NestedScrollView是Android中的一个可滚动视图容器,它可以嵌套在其他布局中,并且可以在垂直方向上滚动其子视图。然而,NestedScrollView在CoordinatorLayout中无法正常滚动。

CoordinatorLayout是一个高级的FrameLayout,用于实现复杂的交互效果和协调子视图之间的行为。它可以用于创建可滚动的界面,例如滚动时隐藏或显示工具栏等。但是,由于NestedScrollView和CoordinatorLayout都具有滚动功能,将NestedScrollView直接放置在CoordinatorLayout中会导致滚动冲突,从而导致NestedScrollView无法正常滚动。

解决这个问题的一种方法是使用AppBarLayout作为CoordinatorLayout的直接子视图,并将NestedScrollView作为AppBarLayout的子视图。这样,NestedScrollView将成为AppBarLayout的内容视图,并且可以通过滚动AppBarLayout来实现滚动效果。

以下是一个示例布局代码:

代码语言:txt
复制
<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <!-- 在这里添加你的工具栏视图 -->

        </com.google.android.material.appbar.CollapsingToolbarLayout>
    </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- 在这里添加你的可滚动内容视图 -->

    </androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

在这个示例中,AppBarLayout包含一个CollapsingToolbarLayout,用于创建可折叠的工具栏。NestedScrollView作为CoordinatorLayout的直接子视图,并且包含可滚动的内容视图。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/ace
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云音视频服务:https://cloud.tencent.com/product/tcvs
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tc3d
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

聊聊Android嵌套滑动

聊聊Android嵌套滑动 最近工作遇到了需求是使用 Bottom-Sheet 交互的弹窗,使用了 design 包里面的 CoordinatorLayout 和 BottomSheetBehavior...在嵌套滑动控件的场景,可以在Android的事件分发机制本身做一些处理,外部拦截或者内部消化触摸事件。...如果是其他手势,滑动的时候拦截,滑动的时候拦截。如果滑动的时候拦截的话,手势事件会交给子view去处理,如果子view是可以滚动的,这时候就会有冲突,所有滚动的时候事件要拦截下来交给自己处理。...接着分发嵌套滚动事件,中间还有一些针对 Scroll mode的处理,我们这里不关心: UP 的时候会根据距离判断是否需要消费快速滑动,如果则会进行分发: 所以我们需要关注的就是: startNestedScroll...嵌套滚动方案的选择 有了这些接口之后,我们可以看到其实内置的Android 控件都支持了滑动嵌套,那么是否我们平时使用的方法都是正确的呢?

1.2K10

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

从官方文档我们可以看到: CoordinatorLayout是一个增强型的FrameLayout。...滚动事件,那么在CoordinatorLayout布局里其它标记了app:layout_behavior的子View(LinearLayout、RecyclerView、NestedScrollView...滚动事件,那么当LinearLayout滚动时便可触发ToolBar的layout_scrollFlags效果 即往上滑动隐藏ToolBar,下滑出现ToolBar,而不会隐藏TabLayout,因为...– (Tab的宽度平均分配),也实现了可滚动的选项卡 – (Tab宽度固定,同时可以横向滚动),还实现了所有Tab居中显示。...并且给这些组件设置如下属性来告诉CoordinatorLayout,该组件是带有滑动行为的组件,然后CoordinatorLayout在接受到滑动时会通知AppBarLayout 可滑动的Toolbar

1.9K30

CoordinatorLayout使用(四):和Toolbar的简单使用

nR\nS\nT\nU\nV\nW\nX\nY\nZ\nW\nX\nY\nZ" /> </android.support.design.widget.CoordinatorLayout...snap: 代码枚举SCROLL_FLAG_SNAP 在滚动结束后,如果view只是部分可见,它将滑动到最近的边界。...设置exitUntilCollapsed也就是为true的时候,任意向上的滚动都会让view(Toolbar)变为minHeight的高度可见,而不会全部消失 反之,设置,也就是false,会全部消失...---- 中场小节 CoordinatorLayout, 如果NestedScrollView要和Toolbar互动的话(CollapsingToolbarLayout等之后在了解,这里涉及)...a5-2.gif 大体就这样了 代码见后面的地址 ---- 简单小节 CoordinatorLayoutNestedScrollView和Toolbar联动 注意Toolbar外面要套AppBarLayout

1.4K30

ConstraintLayout2.0一篇写不完之嵌套滚动怎么滚

在没有ConstraintLayout的时候,要实现嵌套滚动布局,通常都是使用CoordinatorLayout来实现,但是这个东西的使用局限性比较大,能非常简单的实现的嵌套布局,就那么几种,如果要实现一些特别的滚动效果...在ConstraintLayout2.x,有两种方式来实现嵌套滚动布局。...这种方案的布局结构如下: CoordinatorLayout --------AppBarLayout ----------------MotionLayout --------NestedScrollView...CoordinatorLayout,而仅使用MotionLayout来实现嵌套滚动效果,实现滚动布局的大一统。...这样一来,整个嵌套滚动的格局一下子就打开了,再也没了之前使用CoordinatorLayout的高度限制,效果限制,所有的内容,都可以通过约束来进行设置,再通过MotionLayout来进行动态约束,从而实现嵌套滚动布局

1.1K30

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

当我在AS上新建一个module时,系统默认的最外层布局不再是我们熟悉的五大布局的一种,而是一个全新的布局:CoordinatorLayout。...要想要ToolBar响应滚动事件,这里我们需要用到一个控件:AppBarLayout,这个控件必须作为CoordinatorLayout的直接子View,才会响应滚动事件。...然后呢,我们需要定义一下AppBarLayout与滚动视图(如RecyclerView,NestedScrollView等可以支持嵌套滚动的控件)supportlibrary包含了一个特殊的字符串资源@...CoordinatorLayout的工作原理是搜索定义了CoordinatorLayout Behavior的子view,不管是通过在xml中使用app:layout_behavior标签还是通过在代码对...当滚动发生的时候,CoordinatorLayout会尝试触发那些声明了依赖的子view。

82441

NestedScrolling机制之CoordinatorLayout.Behavior实战

在上一讲我们讲了NestedScrolling机制,其实android很多有些常用的控件都是支持NestedScrolling机制的,如RecyclerView,NestedScrollView等,...> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/...2 横向滚动1 * type 滑动类型touch 0手指按下 1手指松开 */ public boolean onStartNestedScroll(@NonNull CoordinatorLayout...target消耗的滚动时候触发,这个是水平滚动的实时距离 * dyUnconsumed view处于滚动状态,但是并不是由target消耗的滚动时候触发,这个是竖直滚动的实时距离 * type 同上 *...同上 * child 同上 * target 同上 * velocityX 水平加速度 * velocityY 竖直加速度 * consumed 同上 false拦截 true则不会有惯性滑动,需要自己处理

83410

CoordinatorLayout使用(三):NestedScrollView & 嵌套滑动事件

直接的关系和使用 自定义Behavior的通用流程 了解 绑定的方式, 事件流 上一篇唯一的例子,是事件流 CoordinatorLayout关联事件 而其中, 事件流,嵌套滑动事件 ...---- 嵌套滑动事件 简单实例 注意: 这里是用 事件流 嵌套滑动事件 去处理的 我们可以用NestedScrollView做事件发送,给外面的Parent发事件, 再传递给Behavior...具体只是2个方法有先后顺序而已 boolean onNestedFling 对应的滑动较快,也就是fling事件触发的时候调用 这里不能换成 onNestedPreFling,替换后,会有卡顿,暂时纠结为什么...这里layout,也很简单 就CoordinatorLayout,包含 2个 NestedScrollView , 一个Behavior activity_main4.xml </android.support.design.widget.CoordinatorLayout

10.2K40
领券