美文网首页
关于折叠滑动吸顶tab置顶问题(recyclerView嵌套与C

关于折叠滑动吸顶tab置顶问题(recyclerView嵌套与C

作者: 御坂七十一号 | 来源:发表于2022-03-16 16:22 被阅读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>
    

    相关文章

      网友评论

          本文标题:关于折叠滑动吸顶tab置顶问题(recyclerView嵌套与C

          本文链接:https://www.haomeiwen.com/subject/dsrlyktx.html