我使用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一起滚动?
对于其他类似问题,我找不到任何答案。谢谢阅读。希望尽快得到答案。