视差滚动背景recyclerview
Parallax scrolling background recyclerview
我的 recyclerview 有一个自定义设计的背景,基本上是为了添加一些设计噪音(比如在 whatsapp 中)。
我想要实现的是,当我滚动 recyclerview 时,背景以 recyclerview 中项目的一半速度滚动。
知道这是否可行吗?如果可行,该怎么做?
这几乎是可以实现的;然而,假设您的回收站视图可以垂直滚动 10,000 像素,您希望您的背景平移 5000 像素吗?如果这是那么你将不得不使用一个非常大的图像文件,在你的情况下,这肯定会 运行 内存不足。
否则在 frameLayout 中保留一个 ScrollView 和一个回收视图。
然后在你的 activity/fragment 中添加一个 scrollChange 监听器到你的 recyclerView (这会告诉你你的回收者视图的位移,特别是你需要 dy )。
根据垂直位移,您可以像这样滚动滚动视图 scrollView.smoothScrollBy(0,dy);
xml 代码代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--your imageView that is bigger than screen height comes here-->
</LinearLayout>
</ScrollView>
<android.support.v7.widget.RecyclerView
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</LinearLayout>
Also please feel free to show me your progress and also if you are stuck.
我的 recyclerview 有一个自定义设计的背景,基本上是为了添加一些设计噪音(比如在 whatsapp 中)。 我想要实现的是,当我滚动 recyclerview 时,背景以 recyclerview 中项目的一半速度滚动。
知道这是否可行吗?如果可行,该怎么做?
这几乎是可以实现的;然而,假设您的回收站视图可以垂直滚动 10,000 像素,您希望您的背景平移 5000 像素吗?如果这是那么你将不得不使用一个非常大的图像文件,在你的情况下,这肯定会 运行 内存不足。
否则在 frameLayout 中保留一个 ScrollView 和一个回收视图。
然后在你的 activity/fragment 中添加一个 scrollChange 监听器到你的 recyclerView (这会告诉你你的回收者视图的位移,特别是你需要 dy )。
根据垂直位移,您可以像这样滚动滚动视图 scrollView.smoothScrollBy(0,dy);
xml 代码代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--your imageView that is bigger than screen height comes here-->
</LinearLayout>
</ScrollView>
<android.support.v7.widget.RecyclerView
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</LinearLayout>
Also please feel free to show me your progress and also if you are stuck.