scwang90 / SmartRefreshLayout

🔥下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。
https://segmentfault.com/a/1190000010066071
Apache License 2.0
24.9k stars 4.95k forks source link

SmartRefreshLayout+CoordinatorLayout 上拉加载的时候 置顶的view也滑动上去了 #1134

Closed zhupengxiang closed 4 years ago

zhupengxiang commented 4 years ago

详细描述 上拉加载中 AppBarLayout下面滑动置顶的view也被上拉出去 不显示了 等在加载完成才正常 怎么能做到上拉加载的时候置顶的view动

使用版本 implementation 'com.scwang.smart:refresh-layout-kernel:2.0.0 implementation 'com.scwang.smart:refresh-footer-classics:2.0.0' 自定义的header

布局代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="@color/black">

    <com.xxx.TitleBar
        android:id="@id/titleBar"
        style="@style/titleBarStyle"
        android:background="@color/color_1c1c1c"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.scwang.smart.refresh.layout.SmartRefreshLayout
        android:id="@id/refreshLayout"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_0"
        android:overScrollMode="never"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@id/titleBar">

        <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.google.android.material.appbar.AppBarLayout
                android:id="@+id/appBarLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/transparent"
                android:elevation="@dimen/dp_0"
                android:orientation="vertical"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_collapseMode="pin"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed">

                    <View
                        android:id="@+id/view_top_bg"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/dp_0"
                        android:background="@drawable/shape_1c1c1c"
                        app:layout_constraintBottom_toBottomOf="@id/view_bg_top_bottom"
                        app:layout_constraintTop_toTopOf="parent" />

                    <ImageView
                        android:id="@+id/iv_photo"
                        android:layout_width="@dimen/dp_150"
                        android:layout_height="@dimen/dp_100"
                        android:layout_marginStart="@dimen/dp_15"
                        android:foreground="@drawable/selector_mask"
                        android:scaleType="centerCrop"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent"
                        tools:src="@drawable/ic_shop_one" />

                    <TextView
                        android:id="@+id/tv_outside_business"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/outside_business_hours"
                        android:textColor="@color/color_e5c372"
                        android:textSize="@dimen/font_14"
                        android:visibility="gone"
                        app:layout_constraintBottom_toBottomOf="@id/iv_photo"
                        app:layout_constraintEnd_toEndOf="@id/iv_photo"
                        app:layout_constraintStart_toStartOf="@id/iv_photo"
                        app:layout_constraintTop_toTopOf="@id/iv_photo" />

                    <TextView
                        android:id="@+id/tv_name"
                        android:layout_width="@dimen/dp_0"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/dp_9"
                        android:layout_marginTop="@dimen/dp_8"
                        android:layout_marginEnd="@dimen/dp_9"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:textColor="@color/color_f2f2f2"
                        android:textSize="@dimen/font_15"
                        app:layout_constraintEnd_toStartOf="@id/tv_new_store"
                        app:layout_constraintStart_toEndOf="@id/iv_photo"
                        app:layout_constraintTop_toTopOf="@id/iv_photo"
                        tools:text="AMT 1号店" />

                    <TextView
                        android:id="@+id/tv_machine_number"
                        android:layout_width="@dimen/dp_0"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/dp_6"
                        android:textColor="@color/color_cccccc"
                        android:textSize="@dimen/font_12"
                        app:layout_constraintBottom_toTopOf="@id/tv_business_hours"
                        app:layout_constraintEnd_toEndOf="@id/tv_name"
                        app:layout_constraintStart_toStartOf="@id/tv_name"
                        tools:text="机器 15台" />

                    <TextView
                        android:id="@+id/tv_conversion_ratio"
                        android:layout_width="@dimen/dp_0"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_3"
                        android:layout_marginEnd="@dimen/dp_10"
                        android:textColor="@color/color_cccccc"
                        android:textSize="@dimen/font_12"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="@id/tv_name"
                        app:layout_constraintTop_toBottomOf="@id/tv_machine_number"
                        tools:text="兑换比例 1:1" />

                    <TextView
                        android:id="@+id/tv_business_hours"
                        android:layout_width="@dimen/dp_0"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="@dimen/dp_10"
                        android:layout_marginBottom="@dimen/dp_7"
                        android:textColor="@color/color_cccccc"
                        android:textSize="@dimen/font_12"
                        app:layout_constraintBottom_toBottomOf="@id/iv_photo"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="@id/tv_name"
                        tools:text="营业时间 05:00-22:00" />

                    <TextView
                        android:id="@+id/tv_new_store"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_2"
                        android:layout_marginEnd="@dimen/dp_16"
                        android:background="@drawable/shape_corner4_25d3b6"
                        android:gravity="center"
                        android:minWidth="@dimen/dp_40"
                        android:text="@string/new_store"
                        android:textColor="@color/white"
                        android:textSize="@dimen/font_11"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/iv_photo" />

                    <TextView
                        android:id="@+id/tv_recommend"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_2"
                        android:layout_marginEnd="@dimen/dp_16"
                        android:background="@drawable/shape_corner4_ef4087"
                        android:gravity="center"
                        android:minWidth="@dimen/dp_40"
                        android:text="@string/recommend"
                        android:textColor="@color/white"
                        android:textSize="@dimen/font_11"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/tv_new_store" />

                    <View
                        android:id="@+id/view_bg_top_bottom"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/dp_16"
                        app:layout_constraintTop_toBottomOf="@id/iv_photo" />

                </androidx.constraintlayout.widget.ConstraintLayout>

                <segmented_control.widget.custom.android.com.segmentedcontrol.SegmentedControl
                    android:id="@+id/segmented_control"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/dp_15"
                    android:layout_marginEnd="@dimen/dp_15"
                    app:columnCount="3"
                    app:distributeEvenly="true"
                    app:radius="@dimen/dp_4"
                    app:segmentVerticalMargin="@dimen/dp_12"
                    app:selectedBackgroundColor="@color/color_b59744"
                    app:selectedStrokeColor="@color/color_b59744"
                    app:selectedTextColor="@color/white"
                    app:strokeWidth="@dimen/dp_1"
                    app:textSize="@dimen/font_13"
                    app:textVerticalPadding="@dimen/dp_4"
                    app:unSelectedBackgroundColor="@color/transparent"
                    app:unSelectedStrokeColor="@color/color_b59744"
                    app:unSelectedTextColor="@color/color_b59744"
                    tools:segments="@array/arrayData" />

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

            <androidx.recyclerview.widget.RecyclerView
                android:id="@id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:descendantFocusability="blocksDescendants"
                android:overScrollMode="never"
                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                tools:listitem="@layout/rv_item_shop_machine" />

        </androidx.coordinatorlayout.widget.CoordinatorLayout>

    </com.scwang.smart.refresh.layout.SmartRefreshLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

屏幕截图 QQ图片20200331142621 Screenshot_2020-03-31-14-41-00-465_com gctech amateras

设备信息

KevinSgun commented 4 years ago

同样遇到SmartRefreshLayout+CoordinatorLayout布局时,上拉加载更多的时候,顶部悬浮的View被顶出去了

zhupengxiang commented 4 years ago

最终利用 srlFooterTranslationViewId 指定上拉Footer时偏移的视图Id=recyclerview 貌似是可以了 @keenorchen

highClouds commented 3 years ago

@zhupengxiang srlFooterTranslationViewId 这个是什么