【发布时间】:2017-06-09 09:18:12
【问题描述】:
我有这个布局:
<android.support.v4.widget.NestedScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<--There is some layouts here-->
<RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
效果很好。我可以在不滚动父视图的情况下平滑滚动RecyclerView。
现在我必须将 RecyclerView 放入 FrameLayout 中,如下所示:
<android.support.v4.widget.NestedScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<--There is some layouts here-->
<FrameLayout
android:id="@+id/review_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<include
android:id="@+id/empty_view"
layout="@layout/review_empty_view"
android:visibility="gone" />
</FrameLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
现在我无法顺利滚动RecyclerView。
我想要的是:平滑滚动RecyclerView 而不滚动父视图。我该怎么办?
编辑:这是我的 review_empty 布局:
<?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="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/shopping_review_empty" />
<android.support.v4.widget.Space
android:layout_width="32dp"
android:layout_height="0dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/shopping_no_review_message" />
</LinearLayout>
【问题讨论】:
-
添加这一行 recyclerView.setNestedScrollingEnabled(false);
-
@Akash 我添加了。它有助于平滑滚动
RecyclerView。但它也滚动了我的父视图。我不想滚动父视图 -
你想用FrameLayout实现什么?
-
我想在
RecyclerView之上添加一个名为“空视图”的新视图。所以我将它们都添加到FrameLayout -
@TOP 你能解释一下你使用 FrameLayout 的目的吗?
标签: android android-recyclerview android-nestedscrollview