片段中的 RecyclerView 没有从父级中的 nestedScollView 中获取滚动行为 activity

RecyclerView in fragment not taking scroll behaviours from nestedScollView in parent activity

我有一个 activity 在 nestedScrollView 内的线性布局内包含 viewPager,我在 viewPager 内和每个 recyclerView 内有 3 个片段 问题是 viewPager 没有占用片段的宽度,所以当我滚动 recyclerView 时它滚动正常但在 activity 的特定部分 我不知道如何正确描述这个问题,但我会插入一些图像和代码来显示问题

1- 滚动前

2- 在父级中滚动 nestedScrollView 时 activity

3- 在 vi​​ewPager 中滚动片段时

所以我想当我滚动时,选项卡将滚动到工具栏之后 我已经尝试了很多解决方案,但都没有用

这是parentActivity.xml

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

<data>

    <variable
        name="presenter"
        type="qatar2022.com.ramiissa.components.Profile.FriendProfile.Root.FriendProfilePresenter" />
</data>

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/friend_profile_refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:fillViewport="true"
        android:background="@android:color/white">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/friend_profile_app_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/friend_profile_collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                app:titleEnabled="false">

                <ImageView
                    android:id="@+id/friend_profile_cover"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fitsSystemWindows="true"
                    android:scaleType="centerCrop"
                    android:src="@drawable/cover"
                    app:layout_collapseMode="parallax" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/friend_profile_tool_bar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:contentInsetStartWithNavigation="0dp"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

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

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/friend_profile_nested_scroll_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            android:fillViewport="true"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/friend_profile_username"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="60dp"
                    android:text="Martha Harris"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Title"
                    android:textColor="@color/grey_90" />


                <TextView
                    android:id="@+id/friend_profile_user_friend_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/spacing_large"
                    android:layout_marginTop="@dimen/spacing_large"
                    android:layout_marginRight="@dimen/spacing_large"
                    android:gravity="center"
                    android:text="5000 Friends"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Subhead"
                    android:textColor="@color/grey_60" />

                <TextView
                    android:id="@+id/friend_profile_user_some_info"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/spacing_large"
                    android:layout_marginTop="@dimen/spacing_large"
                    android:layout_marginRight="@dimen/spacing_large"
                    android:gravity="center"
                    android:text="Some info"
                    android:textAppearance="@style/Base.TextAppearance.AppCompat.Subhead"
                    android:textColor="@color/black" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/spacing_large"
                    android:orientation="horizontal">

                    <Button
                        android:id="@+id/friend_profile_user_message_button"
                        android:layout_width="150dp"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="20dp"
                        android:background="@drawable/btn_rounded_primary"
                        android:drawableStart="@drawable/message"
                        android:drawableTint="@color/white"
                        android:paddingStart="20dp"
                        android:paddingEnd="15dp"
                        android:text="MESSAGE"
                        android:textColor="@color/white" />

                    <Button
                        android:id="@+id/friend_profile_friend_button"
                        android:layout_width="150dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="20dp"
                        android:background="@drawable/btn_rounded_blue_gray"
                        android:drawableStart="@drawable/friend"
                        android:drawableTint="@color/white"
                        android:paddingStart="20dp"
                        android:paddingEnd="15dp"
                        android:text="ADD FRIEND"
                        android:textColor="@color/white" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="15dp"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="16dp"
                        android:layout_height="16dp"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/flag_icon" />

                    <TextView
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="10dp"
                        android:text="@string/profile_nationality"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=":"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:id="@+id/friend_profile_nationality_value_text_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="20dp"
                        android:layout_marginEnd="10dp"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="Syria"
                        android:textSize="@dimen/profile_bottom_info_text_size" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="15dp"
                    android:layout_marginTop="20dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="16dp"
                        android:layout_height="16dp"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/birthday_icon" />

                    <TextView
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="10dp"
                        android:text="@string/profile_birthday"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=":"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:id="@+id/friend_profile_birthday_value_text_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="20dp"
                        android:layout_marginEnd="10dp"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="10-NOVEMBER"
                        android:textSize="@dimen/profile_bottom_info_text_size" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="15dp"
                    android:layout_marginTop="20dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="16dp"
                        android:layout_height="16dp"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/relationship_icon" />

                    <TextView
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="10dp"
                        android:text="@string/profile_relationship"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=":"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:id="@+id/friend_profile_relationship_value_text_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="20dp"
                        android:layout_marginEnd="10dp"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="Single"
                        android:textSize="@dimen/profile_bottom_info_text_size" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="15dp"
                    android:layout_marginTop="20dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="16dp"
                        android:layout_height="16dp"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/work_icon" />

                    <TextView
                        android:layout_width="100dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="10dp"
                        android:text="@string/profile_working"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=":"
                        android:textSize="@dimen/profile_bottom_info_text_size" />

                    <TextView
                        android:id="@+id/friend_profile_work_value_text_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="20dp"
                        android:layout_marginEnd="10dp"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="Android Developer"
                        android:textSize="@dimen/profile_bottom_info_text_size" />
                </LinearLayout>

                <android.support.design.widget.TabLayout
                    android:id="@+id/friend_profile_tab_layout"
                    style="@style/ProfileTabLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:background="@color/grey_300"
                    android:clipToPadding="false"
                    android:visibility="visible"
                    app:tabGravity="fill"
                    app:tabMode="fixed"
                    app:tabSelectedTextColor="@color/white"
                    app:tabTextColor="@color/pale_white" />

                <android.support.v4.view.ViewPager
                    android:id="@+id/friend_profile_view_pager"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>
            </LinearLayout>

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


        <de.hdodenhof.circleimageview.CircleImageView
            android:id="@+id/friend_profile_user_photo"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/example"
            app:civ_border_color="@color/white"
            app:civ_border_width="1dp"
            app:layout_anchor="@+id/friend_profile_app_bar_layout"
            app:layout_anchorGravity="bottom|center" />
    </android.support.design.widget.CoordinatorLayout>
</android.support.v4.widget.SwipeRefreshLayout>

你能测试我的建议吗?请将 TabLayout 和 ViewPager 放在 NestedScrollView 之外,并在 parent layout.Of 的每个片段布局中使用 NestedScrollView 当然,您可以将页面 header 部分放置并通过包含标签在 CollapsingToolbarLayout 中使用它但是测试第一个建议。

在主布局中:

<AppBarLayout>    
 <CollapsingToolbarLayout android:fitsSystemWindows="true">
   <include layout="include_header" />
   <Toolbar />
 </CollapsingToolbarLayout>
</AppBarLayout>
<ViewPager />

在include_header部分:

<FrameLayout android:fitsSystemWindows="true">
  <ConstraintLayout />
</FrameLayout>

我在背景图像的约束布局中使用比例 header: 应用程序:layout_constraintDimensionRatio="H,4:3"

这是我的设计和作品perfectly.I有一些设计喜欢你的设计,但我决定改变我的方式以获得更好的结果。