当前位置: 首页 > 知识库问答 >
问题:

NestedScrollView无法与AppBarLayout平滑并行

慕容渊
2023-03-14

我有以下布局:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/treasure_background"
    android:fitsSystemWindows="false">


    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="0dp"

        app:layout_behavior="trasurhunt.nicbit.com.traserhunt.schedule.FlingBehavior">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"

            app:contentScrim="?attr/colorPrimary"
            android:elevation="0dp"
            >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="66.5dp"
                android:orientation="vertical"
                android:paddingBottom="15dp"
                android:background="@color/treasure_background"
                app:layout_collapseMode="parallax">

                <LinearLayout
                    android:id="@+id/infoRL"
                    android:orientation="vertical"
                    app:layout_collapseMode="parallax"
                    android:layout_width="match_parent"
                    android:paddingBottom="20dp"
                    android:layout_height="wrap_content"
                    android:background="@color/treasure_yellow">


                    <com.joooonho.SelectableRoundedImageView
                        android:id="@+id/hostImage"
                        android:layout_width="62dp"
                        android:layout_gravity="center_horizontal"
                        android:layout_height="62dp"
                        android:layout_centerHorizontal="true"
                        android:adjustViewBounds="true"
                        android:scaleType="centerCrop"
                        app:sriv_left_bottom_corner_radius="0dp"
                        app:sriv_oval="true"
                        app:sriv_right_bottom_corner_radius="0dp"
                        android:src="@drawable/default_image"/>


                    <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextView
                        android:id="@+id/hostName"
                        android:layout_gravity="center_horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/hostImage"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="4dp"
                        android:text="Speaker Name"
                        android:textColor="@color/treasure_black"
                        android:textSize="15sp" />

                    <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                        android:id="@+id/scheduleTitle"
                        android:layout_gravity="center_horizontal"
                        android:textAlignment="center"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/hostName"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="29dp"
                        android:text="Schedule Title"
                        android:textColor="@color/treasure_black"
                        android:textSize="21sp" />
                    <RelativeLayout
                        android:id="@+id/locationRL"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/scheduleTitle"
                        android:layout_gravity="center"
                        android:layout_marginTop="20.5dp"
                        >

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextView
                            android:id="@+id/locationLabel"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/location"
                            android:textColor="@color/treasure_black"
                            android:textSize="14sp" />

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextView
                            android:id="@+id/eventHallName"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_toRightOf="@+id/locationLabel"
                            android:layout_toEndOf="@+id/locationLabel"
                            android:text=" Hall Of Event"
                            android:textColor="@color/treasure_black"
                            android:textSize="14sp" />
                    </RelativeLayout>

                    <RelativeLayout
                        android:id="@+id/timeRL"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/locationRL"
                        android:layout_gravity="center"
                        android:layout_marginTop="4dp"
                        >

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                            android:id="@+id/time"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/timeLabel"
                            android:textColor="@color/treasure_black"
                            android:textSize="15sp" />

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                            android:id="@+id/startTime"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_toRightOf="@+id/time"
                            android:layout_toEndOf="@+id/time"
                            android:text="05:30 AM"
                            android:textColor="@color/treasure_black"
                            android:textSize="15sp" />

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                            android:id="@+id/toDash"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_toRightOf="@+id/startTime"
                            android:layout_toEndOf="@+id/startTime"
                            android:text=" - "
                            android:textColor="@color/treasure_black"
                            android:textSize="15sp" />

                        <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                            android:id="@+id/endTime"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_toRightOf="@+id/toDash"
                            android:layout_toEndOf="@+id/toDash"
                            android:text="05:30 AM"
                            android:textColor="@color/treasure_black"
                            android:textSize="15sp" />
                    </RelativeLayout>
                </LinearLayout>



            </LinearLayout>
        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>



    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="trasurhunt.nicbit.com.traserhunt.schedule.FixedScrollingViewBehavior"
        android:background="@color/treasure_background"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="70dp"
            android:background="@color/treasure_background"
            android:orientation="vertical"
            android:paddingLeft="19.5dp">

            <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                android:id="@+id/synopsisLabel"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/synopsis"
                android:textColor="@color/treasure_cyan"
                android:textSize="21sp"
                android:layout_marginTop="31dp"
                android:layout_marginBottom="14dp" />
            <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextView
                android:id="@+id/synopsis"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:textSize="15dp"
                android:text="@string/loremIpsumPara"
                android:textColor="@color/treasure_white"
                android:layout_marginRight="15dp"
                />
            <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextViewBold
                android:id="@+id/aboutSpeakerLabel"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/aboutSpeakerLabel"
                android:textColor="@color/treasure_cyan"
                android:textSize="21sp"
                android:layout_marginTop="36.5dp"
                android:layout_marginBottom="14dp"
                />
            <trasurhunt.nicbit.com.traserhunt.utility.CentuaryGothicTextView
                android:id="@+id/aboutSpeaker"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:textSize="15dp"
                android:text="@string/loremIpsumPara"
                android:textColor="@color/treasure_white"
                />


        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

    <include
        layout="@layout/custom_toolbar" />

    <Button
        android:id="@+id/checkInButton"
        android:text="@string/checkInString"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentTop="false"
        android:layout_gravity="bottom"
        android:layout_centerHorizontal="true"
        style="@style/Widget.AppCompat.Button.Colored"
        android:backgroundTint="@color/treasure_yellow"
        android:background="#e2fb02"
        android:textColor="@color/treasure_dark_gray"
        android:textSize="22sp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp" />
</android.support.design.widget.CoordinatorLayout>

当我尝试向上滚动时,它无法正常工作,而且会滞后和卡住,而向下滚动似乎很好。我不明白为什么。我找了很多,做了很多改变,但仍然没有效果。

以下是我的活动内容

共有1个答案

艾翼
2023-03-14

检查一下,希望它对你有用。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="end">

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/app_bar_height"
            android:fitsSystemWindows="true"
            android:theme="@style/AppTheme.AppBarOverlay"
            app:layout_collapseMode="parallax"
            app:layout_collapseParallaxMultiplier="0.75">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.75"
                app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:layout_collapseMode="parallax"
                    app:layout_collapseParallaxMultiplier="0.75">

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/backgrnd"
                        android:contentDescription=""
                        android:fitsSystemWindows="true"
                        android:scaleType="fitXY"
                        app:layout_collapseMode="parallax"
                        app:layout_collapseParallaxMultiplier="0.75"
                        tools:ignore="ContentDescription" />

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:background="#a3441f77"
                        android:fitsSystemWindows="true"
                        android:scaleType="fitXY"
                        app:layout_collapseMode="parallax"
                        app:layout_collapseParallaxMultiplier="0.75"
                        tools:ignore="ContentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:gravity="center"
                        app:layout_collapseMode="parallax"
                        app:layout_collapseParallaxMultiplier="0.75">

                        <LinearLayout
                            android:id="@+id/listarrow"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:clickable="true"
                            android:orientation="horizontal"
                            app:layout_collapseMode="parallax"
                            app:layout_collapseParallaxMultiplier="0.75"
                            tools:ignore="UseCompoundDrawables,UselessParent">

                            <TextView
                                android:id="@+id/coachingname"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:layout_marginRight="5dp"
                                android:text="Kota"
                                android:textSize="20sp"
                                android:textStyle="bold"
                                app:layout_collapseMode="parallax"
                                app:layout_collapseParallaxMultiplier="0.75"
                                tools:ignore="HardcodedText,RtlHardcoded" />

                            <ImageView
                                android:id="@+id/imageList"
                                android:layout_width="20dp"
                                android:layout_height="20dp"
                                android:layout_gravity="center"
                                android:layout_marginLeft="5dp"
                                android:src="@drawable/arrow"
                                app:layout_collapseMode="parallax"
                                app:layout_collapseParallaxMultiplier="0.75"
                                tools:ignore="ContentDescription,RtlHardcoded" />
                        </LinearLayout>
                    </LinearLayout>
                </FrameLayout>


                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="parallax"
                    app:layout_collapseParallaxMultiplier="0.75"
                    app:popupTheme="@style/AppTheme.PopupOverlay"></android.support.v7.widget.Toolbar>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    app:layout_collapseMode="parallax"
                    app:layout_collapseParallaxMultiplier="0.75">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:orientation="horizontal"
                        app:layout_collapseMode="parallax"
                        app:layout_collapseParallaxMultiplier="0.75"
                        tools:ignore="UselessParent">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center|left"
                            android:layout_weight="1"
                            android:gravity="center_vertical"
                            android:paddingLeft="10dp"
                            android:text="Housing.com"
                            android:textColor="#ffffff"
                            android:textStyle="bold"
                            app:layout_collapseMode="parallax"
                            app:layout_collapseParallaxMultiplier="0.75"
                            tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />

                        <ImageView
                            android:id="@+id/drowerimage"
                            android:layout_width="25dp"
                            android:layout_height="25dp"
                            android:layout_gravity="center|end"
                            android:layout_weight=".25"
                            android:clickable="true"
                            android:src="@drawable/user"
                            app:layout_collapseMode="parallax"
                            app:layout_collapseParallaxMultiplier="0.75"
                            tools:ignore="ContentDescription" />
                    </LinearLayout>

                </LinearLayout>

                <FrameLayout
                    android:id="@+id/collapsing_logo"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:layout_gravity="bottom"
                    app:layout_collapseMode="pin">

                    <LinearLayout
                        android:id="@+id/search1"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:layout_marginBottom="4dp"
                        android:layout_marginLeft="8dp"
                        android:layout_marginRight="8dp"
                        android:background="@drawable/search_shape"
                        android:orientation="horizontal"
                        app:layout_collapseMode="pin"
                        tools:ignore="UselessParent">

                        <ImageView
                            android:layout_width="25dp"
                            android:layout_height="25dp"
                            android:layout_gravity="center_vertical"
                            android:layout_margin="10dp"
                            android:src="@drawable/ic_action_search" />

                        <android.support.v7.widget.AppCompatTextView
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
                            android:text="Search"
                            android:textColor="#FF8C8C8C"
                            android:textSize="17sp"
                            tools:ignore="HardcodedText" />
                    </LinearLayout>
                </FrameLayout>

            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <ViewStub
                android:id="@+id/layout_stub"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.75"
                android:inflatedId="@+id/message_layout" />
        </android.support.v4.widget.NestedScrollView>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            app:srcCompat="@android:drawable/ic_dialog_email" />

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_home"
        app:menu="@menu/activity_home_drawer" />

</android.support.v4.widget.DrawerLayout>

我在NestedScrollView中使用ViewStub,这样你就可以在Viewstub中展开你的概要部分

 类似资料:
  • 我正在开发一个应用程序,其中我使用了AppBarLayout和CollapsingToolbarLayout以及NestedScrollView。我已经成功地实现了这一点,并且运行良好。 现在我想做的是,在嵌套滚动视图上滑动(快速向上滑动)时,它应该完全滚动到顶部。类似地,在向屏幕底部滑动(快速向下滑动)时,它必须平滑地滚动到底部。然而现在,它只能卡在中间,这使它看起来很丑。我已经尝试了许多可用的

  • 我正在开发一个Android应用程序,其中我使用、和来使用折叠工具栏功能。 我在布局中使用在相同的布局中展开和折叠。当我试图从屏幕中心向上滚动时,它不起作用,但当我试图从屏幕右角向上滚动屏幕时,它会平滑滚动。 下面提到的是我的 xml 文件 layout.xml 理想的结果是,当我尝试从屏幕中心向上滚动时,它应该像我从手机右角向上滚动一样工作。 请观看下面提到的视频,以便更清楚地了解问题 http

  • 我有一个AppBarLayout和NestedScrollView。我希望每当NestedScrollView向下滚动时,AppBarLayout也应该优雅地展开,而NestedSScrollView不会在AppBarLayoutExpand之前停止;需要第二次飞行/滚动才能完成。 我检查了堆栈溢出,发现这个解决方案非常相关,可以使用。但相反,如果NestedScrollView,它是Recycl

  • 嵌套滚动视图在向下滚动时滚动流畅,但在向上滚动时滚动缓慢。向上滚动时折叠工具栏(带有图像视图和框架布局)不会呈现其内容(保持空白)。我已经尝试了折叠工具栏中的每个标志。

  • 我想实现像Google Play App一样的平滑滚动行为。我尝试过这里提到的解决方案: 解决方案1 解决方案2 解决方案3 但所有上述解决方案都没有像在Google Play应用程序中那样给出预期的结果。以下是xml代码: 如何实现平滑滚动? 编辑:以下是recyclerview适配器 }

  • 我有一个带有,我想让它顺利工作。 我的问题是,当从内容向上滚动时,我的折叠工具栏不会自动展开,但当它到达顶部时会被阻止。然后我需要再次向上滚动以展开工具栏。 我想实现从内容平滑向上滚动,这将自动扩展我的< code > CollapsingToolbarLayout 这是我的代码: 我发现了一些类似的问题,但没有一个答案对我有用。