关于折叠滑动吸顶tab置顶问题(recyclerView嵌套与C
2022-03-16 本文已影响0人
御坂七十一号
使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+TabLayout可以实现tab滑动吸顶效果。
完整布局文件如下:RecyclerView也可以用NestedScrollView。
遇到问题:当RecyclerView中还嵌套了RecyclerView时,手指触摸嵌套内的RecyclerView会导致折叠失效。
解决方法:给嵌套内的RecyclerView设置rv.setNestedScrollingEnabled(false);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="#FCEEDF"
android:orientation="vertical"
tools:context=".pwp.activity.PWPJxjyStudyActivity">
<include layout="@layout/full_header_layout" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/rl_nav_bar">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/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"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_top_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/bg_pwp_jxjy" />
<RelativeLayout
android:id="@+id/rl_score_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/iv_top_bg"
android:layout_marginStart="@dimen/common_32"
android:layout_marginEnd="@dimen/common_32"
android:background="@mipmap/pwp_jxjy_top_bg"
android:paddingTop="@dimen/common_20">
<TextView
android:id="@+id/tvMyScoreTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/common_42"
android:layout_marginEnd="@dimen/common_32"
android:fontFamily="@font/medium"
android:text="@string/pwp_jxjy_my_total_score"
android:textColor="@color/pwp_jxjy_main_text_color"
android:textSize="@dimen/common_24" />
<TextView
android:id="@+id/tvDueDateTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@+id/tvDueDate"
android:fontFamily="@font/medium"
android:text="@string/pwp_jxjy_my_due_date"
android:textColor="@color/pwp_jxjy_main_text_color"
android:textSize="@dimen/common_20" />
<TextView
android:id="@+id/tvDueDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginEnd="@dimen/common_32"
android:fontFamily="@font/medium"
android:text="--"
android:textColor="@color/pwp_jxjy_main_text_color"
android:textSize="@dimen/common_20" />
<TextView
android:id="@+id/tvScore"
android:layout_width="wrap_content"
android:layout_height="@dimen/common_110"
android:layout_below="@id/tvMyScoreTitle"
android:layout_marginStart="@dimen/common_42"
android:layout_marginEnd="@dimen/common_32"
android:fontFamily="@font/bold"
android:text="0"
android:textColor="@color/pwp_jxjy_main_text_color"
android:textSize="@dimen/common_90" />
<TextView
android:id="@+id/tvBuyAgain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvDueDateTitle"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/common_32"
android:layout_marginEnd="@dimen/common_12"
android:background="@drawable/shape_pwp_jxjy_buy_aggin"
android:elevation="@dimen/common_10"
android:fontFamily="@font/medium"
android:text="@string/pwp_jxjy_buy_again"
android:textColor="#FFFCDC"
android:textSize="@dimen/common_28" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvScore"
android:layout_marginTop="@dimen/common_18"
android:background="@drawable/bg_0_4c170f00_bottom12"
android:paddingStart="@dimen/common_32"
android:paddingTop="@dimen/common_15"
android:paddingEnd="@dimen/common_32"
android:paddingBottom="@dimen/common_15"
android:visibility="visible">
<TextView
android:id="@+id/tvGetDiff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/medium"
android:text="距离获得证书延续资格分数还差 -- 分"
android:textColor="#FFFCDC"
android:textSize="@dimen/common_24"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivR"
android:layout_width="@dimen/common_32"
android:layout_height="@dimen/common_32"
android:src="@mipmap/pwp_jxjy_top_r"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvGetDiff" />
<View
android:id="@+id/pbBg"
android:layout_width="0dp"
android:layout_height="4dp"
android:layout_marginEnd="@dimen/common_10"
android:background="@drawable/shape_pwp_jxjy_pb_bg"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/ivR"
app:layout_constraintLeft_toLeftOf="@id/tvGetDiff"
app:layout_constraintRight_toLeftOf="@id/ivR"
app:layout_constraintTop_toTopOf="@id/ivR" />
<View
android:id="@+id/pb"
android:layout_width="0dp"
android:layout_height="4dp"
android:layout_marginEnd="@dimen/common_10"
android:background="@drawable/shape_pwp_jxjy_pb"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/ivR"
app:layout_constraintLeft_toLeftOf="@id/tvGetDiff"
app:layout_constraintTop_toTopOf="@id/ivR" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</RelativeLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tl_tab"
android:layout_width="match_parent"
android:layout_height="@dimen/common_96"
android:layout_gravity="center_horizontal"
android:background="@drawable/shape_pwp_jxjy_tab"
app:tabBackground="@color/trans"
app:tabGravity="center"
app:tabIndicator="@drawable/shape_indicator_pwp"
app:tabIndicatorColor="#F29339"
app:tabIndicatorFullWidth="false"
app:tabIndicatorGravity="bottom"
app:tabIndicatorHeight="5dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/title"
app:tabTextColor="@color/title" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvJxjy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<include layout="@layout/dw_error_layout" />
</RelativeLayout>