全屏SwipeRefreshLayout,带有CollapsingToolbar

时间:2019-03-01 14:46:27

标签: android android-collapsingtoolbarlayout swiperefreshlayout

我需要的是SwipeRefresh动画必须从带有CollapsingToolbar的CoordinatorLayout内部的屏幕顶部开始。 如果将RecyclerView包装在SwipeRefreshLayout中,则动画将从CollapsingToolbarLayout下面开始。 如果我将整个CoordinatorLayout包装在SwipeRefreshLayout中,则该行为将不会非常精确,并且在第一次滑动后也不会起作用。

这是在CollipesingToolbar下面显示SwipeRefresh动画的布局:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:fitsSystemWindows="true">
<net.telekom.smartcity.custom.OscaAppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:layout_height="@dimen/services_toolbar_height"
        android:theme="@style/ThemeOverlay.AppCompat.Light"
        android:windowDrawsSystemBarBackgrounds="true"
        android:fitsSystemWindows="true">
    <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentScrim="@android:color/white"
            android:minHeight="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@id/marketplaceToolbar"
            android:fitsSystemWindows="true">

        <ImageView
                android:id="@+id/zoomableImage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="matrix"
                android:layout_gravity="center"
                app:layout_collapseMode="parallax"
                android:fitsSystemWindows="true"/>

        <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/black35a"
                android:fitsSystemWindows="true"/>

        <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/services_toolbar_title_top_margin"
                android:layout_marginStart="@dimen/services_toolbar_infobox_margin_start"
                android:orientation="vertical">
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/marketplace_toolbar_message1"
                    android:textSize="@dimen/services_toolbar_title_size"
                    android:paddingBottom="@dimen/services_toolbar_title_padding_bottom"
                    android:textColor="@color/white"
                    style="@style/RobotoBold"/>
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/services_toolbar_title_description_top_margin"
                    android:text="@string/services_toolbar_message2"
                    android:textColor="@color/white"
                    android:textSize="@dimen/services_toolbar_description_size"
                    style="@style/RobotoLight"/>
        </LinearLayout>

        <androidx.appcompat.widget.Toolbar
                android:id="@+id/marketplaceToolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                android:fitsSystemWindows="false">
            <LinearLayout
                    android:id="@+id/toolbarCityBox"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal"
                    android:layout_gravity="start">

                <ImageView
                        android:id="@+id/toolbarCoat"
                        android:layout_width="@dimen/toolbar_coa_size"
                        android:layout_height="@dimen/toolbar_coa_size"
                        android:layout_gravity="center_vertical"/>

                <TextView
                        android:id="@+id/toolbarTitle"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textSize="@dimen/toolbar_title_size"
                        android:layout_marginStart="16dp"
                        android:layout_gravity="center_vertical"
                        android:textColor="@color/black"
                        style="@style/RobotoMedium"
                />
            </LinearLayout>
        </androidx.appcompat.widget.Toolbar>

    </com.google.android.material.appbar.CollapsingToolbarLayout>
</net.telekom.smartcity.custom.OscaAppBarLayout>


<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swipeRefreshLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
    />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

0 个答案:

没有答案