将 TextView 附加到 RecyclerView
Attach TextView to RecyclerView
我知道以下内容不正确,但我想您可以将其视为伪代码。我想知道,我如何才能 "attach" 将整个布局添加到我的 RecyclerView 中,这样当我向下滚动布局时,布局就会随之滚动到看不见的地方。目前 RecyclerView 上方的 TextView 固定在屏幕上,而我的 RecyclerView 中的所有数据都是可滚动的。当用户向下滚动页面时,我希望 TextView 移出视线。如果你查看 Instagram,当你向下滚动页面时,画廊顶部的所有用户个人资料信息都会消失。我怎样才能做到这一点?如何以编程方式添加 TextView?
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello!" />
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="?android:attr/actionBarSize"
android:padding="@dimen/item_margin"
android:id="@+id/recycler_view"
android:clipToPadding="false">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello!" />
</android.support.v7.widget.RecyclerView>
您可以使用自定义 RecyclerAdapter
将 TextView
添加为 RecyclerView
的项目之一,或者您可以使用带有 LinearLayout
的 ScrollView
作为其内容,而不是 RecyclerView
因为不建议在 ScrollView
.
中使用一个
你可以试试Android-ObservableScrollView.
参考以下link:
https://github.com/ksoichiro/Android-ObservableScrollView
我使用这两个很好的资源也做了同样的事情:
https://plus.google.com/114432517923423045208/posts/EdkQFx1RqhE
https://gist.github.com/gabrielemariotti/4c189fb1124df4556058
一种可能的解决方案:
您可以将 TextView 视为 RecyclerView 的项目之一,但它会有不同的外观。
@Override
public int getItemViewType(int position) {
if (position == 0) {
return HEADER;
} else {
return NORMAL_ITEM;
}
}
@Override
public StandardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == HEADER) {
//inflate your textview layout header. Create a viewholder //for it
} else {
// inflate normal layour
}
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
if (getItemViewType(position) == HEADER) {
// BIND header View
} else {
//BIND NormalView
}
}
我知道以下内容不正确,但我想您可以将其视为伪代码。我想知道,我如何才能 "attach" 将整个布局添加到我的 RecyclerView 中,这样当我向下滚动布局时,布局就会随之滚动到看不见的地方。目前 RecyclerView 上方的 TextView 固定在屏幕上,而我的 RecyclerView 中的所有数据都是可滚动的。当用户向下滚动页面时,我希望 TextView 移出视线。如果你查看 Instagram,当你向下滚动页面时,画廊顶部的所有用户个人资料信息都会消失。我怎样才能做到这一点?如何以编程方式添加 TextView?
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello!" />
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="?android:attr/actionBarSize"
android:padding="@dimen/item_margin"
android:id="@+id/recycler_view"
android:clipToPadding="false">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello!" />
</android.support.v7.widget.RecyclerView>
您可以使用自定义 RecyclerAdapter
将 TextView
添加为 RecyclerView
的项目之一,或者您可以使用带有 LinearLayout
的 ScrollView
作为其内容,而不是 RecyclerView
因为不建议在 ScrollView
.
你可以试试Android-ObservableScrollView.
参考以下link: https://github.com/ksoichiro/Android-ObservableScrollView
我使用这两个很好的资源也做了同样的事情:
https://plus.google.com/114432517923423045208/posts/EdkQFx1RqhE
https://gist.github.com/gabrielemariotti/4c189fb1124df4556058
一种可能的解决方案: 您可以将 TextView 视为 RecyclerView 的项目之一,但它会有不同的外观。
@Override
public int getItemViewType(int position) {
if (position == 0) {
return HEADER;
} else {
return NORMAL_ITEM;
}
}
@Override
public StandardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == HEADER) {
//inflate your textview layout header. Create a viewholder //for it
} else {
// inflate normal layour
}
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
if (getItemViewType(position) == HEADER) {
// BIND header View
} else {
//BIND NormalView
}
}