协调器布局孙子视图图钉在顶部

时间:2018-09-18 08:11:39

标签: android android-recyclerview android-coordinatorlayout

我使用Coordinator Layout作为根视图,在AppBarLayout中有CollapsingToolbarLayout,而在其中...是工具栏。

所以基本上: 协调器布局-> AppbarLayout-> CollapsingToolbarLayout->工具栏(和其他一些视图)

<search-results v-on:send-result-values="showResultData"></search-results>
<search-popover></search-popover>

methods: {
    showResultData: function () {
        console.log("Data received from child: ")
    }
 },

下面的协调器布局的直接子级(“ CustomViewPager”)具有一个片段,其顶部为水平recyclerview,底部为垂直recyclerview:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/background"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:background="@drawable/stories_gradient_background">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="130dp"
        android:background="@android:color/transparent"
        android:fitsSystemWindows="true"
        android:theme="@style/NoElevationActionBar"
        android:visibility="visible">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="@android:color/transparent"
            app:layout_scrollFlags="scroll">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                app:layout_collapseMode="pin"
                android:layout_marginTop="20dp"
                android:contentInsetEnd="0dp"
                android:contentInsetLeft="0dp"
                android:contentInsetRight="0dp"
                android:contentInsetStart="0dp"
                android:elevation="0dp"
                app:contentInsetEnd="0dp"
                app:contentInsetLeft="0dp"
                app:contentInsetRight="0dp"
                app:contentInsetStart="0dp"
                app:popupTheme="@style/Base.ThemeOverlay.AppCompat.Light">

                <RelativeLayout
                    android:id="@+id/toolbarRelativeLayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <ImageView
                        android:id="@+id/friendRadarSearch"
                        android:layout_width="50dp"
                        android:layout_height="match_parent"
                        android:layout_alignParentStart="true"
                        android:onClick="@{viewModel.searchClick}"
                        android:padding="15dp"
                        android:src="@drawable/search" />

                    <ImageView
                        android:id="@+id/back"
                        android:layout_width="50dp"
                        android:layout_height="match_parent"
                        android:layout_alignParentEnd="true"
                        android:onClick="@{viewModel.addVideoClick}"
                        android:padding="17dp"
                        android:src="@drawable/back_arrow_nav_white2x" />

                </RelativeLayout>

            </android.support.v7.widget.Toolbar>

            <View
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_gravity="bottom"
                android:background="@drawable/tab_layout_shape"
                android:elevation="0dp" />

            <com.ogaclejapan.smarttablayout.SmartTabLayout
                android:id="@+id/smartTab"
                android:layout_width="match_parent"
                android:layout_height="55dp"
                android:layout_gravity="bottom"
                app:stl_clickable="true"
                app:stl_customTabTextLayoutId="@layout/custom_tab_stories"
                app:stl_customTabTextViewId="@id/tabText"
                app:stl_defaultTabTextAllCaps="false"
                app:stl_defaultTabTextHorizontalPadding="7dp"
                app:stl_defaultTabTextMinWidth="0dp"
                app:stl_defaultTabTextSize="14sp"
                app:stl_distributeEvenly="true"
                app:stl_drawDecorationAfterTab="false"
                app:stl_indicatorAlwaysInCenter="false"
                app:stl_indicatorColor="#00BCE5"
                app:stl_indicatorCornerRadius="2dp"
                app:stl_indicatorGravity="bottom"
                app:stl_indicatorInFront="true"
                app:stl_indicatorInterpolation="smart"
                app:stl_indicatorThickness="3.5dp"
                app:stl_indicatorWidth="80dp"
                app:stl_indicatorWithoutPadding="true"
                app:stl_overlineThickness="0dp"
                app:stl_titleOffset="24dp"
                app:stl_underlineThickness="0dp" />

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

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


    <com.mobius.stickii.stickii_android.utils.CustomViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    </com.mobius.stickii.stickii_android.utils.CustomViewPager>


    <View
        android:id="@+id/gradient_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/top_dark_gradient"
        android:visibility="gone" />

    <android.support.v7.widget.Toolbar
        android:id="@+id/swiped_toolbar"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="20dp"
        android:contentInsetEnd="0dp"
        android:contentInsetLeft="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetStart="0dp"
        android:visibility="gone"
        app:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetStart="0dp"
        app:popupTheme="@style/Base.ThemeOverlay.AppCompat.Light">

        <LinearLayout
            android:id="@+id/swiped_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:weightSum="6">

            <ImageView
                android:id="@+id/swiped_friendRadarSearch"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:onClick="@{viewModel.searchClick}"
                android:padding="15dp"
                android:src="@drawable/search" />

            <com.ogaclejapan.smarttablayout.SmartTabLayout
                android:id="@+id/swiped_smartTab"
                android:layout_width="0dp"
                android:layout_height="55dp"
                android:layout_weight="4"
                app:stl_clickable="true"
                app:stl_customTabTextLayoutId="@layout/custom_tab_stories"
                app:stl_defaultTabTextAllCaps="false"
                app:stl_defaultTabTextHorizontalPadding="7dp"
                app:stl_defaultTabTextMinWidth="0dp"
                app:stl_defaultTabTextSize="14sp"
                app:stl_distributeEvenly="true"
                app:stl_dividerColor="#70444A53"
                app:stl_dividerThickness="0dp"
                app:stl_drawDecorationAfterTab="false"
                app:stl_indicatorAlwaysInCenter="false"
                app:stl_indicatorColor="#00BCE5"
                app:stl_indicatorCornerRadius="2dp"
                app:stl_indicatorGravity="bottom"
                app:stl_indicatorInFront="true"
                app:stl_indicatorInterpolation="smart"
                app:stl_indicatorThickness="3.5dp"
                app:stl_indicatorWidth="80dp"
                app:stl_indicatorWithoutPadding="true"
                app:stl_overlineColor="#FFF"
                app:stl_overlineThickness="0dp"
                app:stl_titleOffset="24dp"
                app:stl_underlineColor="#FFF"
                app:stl_underlineThickness="0dp" />

            <ImageView
                android:id="@+id/swiped_back"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:onClick="@{viewModel.addVideoClick}"
                android:padding="17dp"
                android:src="@drawable/back_arrow_nav_white2x" />

        </LinearLayout>

    </android.support.v7.widget.Toolbar>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background_gradient_stories_bottom" />

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

回到问题,CoordinatorLayout的滚动工作正常,但是当我滚动CoordinatorLayout时,片段的水平recyclerview(在CustomViewPager中)将停留在/固定在顶部,我没想到会出现这种情况,因为我对于只有垂直Recyclerview的另一个片段也做了同样的事情,一切都很好。

因此,判决书:如何在不粘在coordinatorlayout顶部的情况下将水平recyclerview与垂直recyclerview一起滚动?

对于其他类似问题,我找不到任何答案。谢谢阅读。希望尽快得到答案。

0 个答案:

没有答案