我对我有点奇怪的问题。我需要在recyclelerview滚动上翻译位于viewpager上的视图。 RecyclerView位于片段中,片段位于viewpager中。当我在片段中滚动recyclerview并想要翻译位于viewpager上的View时,我的问题就出现了。 ViewPager正在向上移动以填充已翻译视图留下的空间,但片段不是。因此,我可以在viewpager上看到空间空白区域。我通过设置viewpager背景检查它,我看到viewpager实际调整大小以匹配容器但片段保持不变。任何想法如何迫使它按原样运作?当我想要调整大小的recyclelerview和视图在同一个片段上时,此代码非常有效。
问题看起来像http://i.imgur.com/wyxXGYh.png
布局看起来像这样 ViewPagerFragment
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipToPadding="false">
<android.support.v7.widget.RecyclerView
android:id="@+id/subcategory_fragment_recycle_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
使用Viewpager进行布局
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/fragment_category_sliding_tab_layout">
<android.support.v4.view.ViewPager
android:id="@+id/fragment_category_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="100dp"
android:clipToPadding="false"
android:background="#0000FF"
android:animateLayoutChanges="true">
</android.support.v4.view.ViewPager>
<TextView
android:id="@+id/scrollTemp"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#FF0000"
android:gravity="center|center_vertical"
android:text="TEMP"
android:textSize="40dp" />
</FrameLayout>
为了检测scrolllevents并触发显示/隐藏临时视图,我基本上使用了这个HidingScrollListener https://mzgreen.github.io/2015/02/28/How-to-hideshow-Toolbar-when-list-is-scrolling%28part2%29/。正如我所说,当我想滚动的recyclerview和视图在同一个片段上时它完美地工作。