我有一个带有BottomSheet的CoordinatorLayout。如果Bottomsheet仅具有RecyclerView,则一切正常。我试图在RecyclerView的顶部添加一些Textview和按钮,但是当recyclerview到达顶部高度时,它将滚动到另一个视图的下方。我也希望其他观点也可以。 如果BottomSheet仅包含其他视图(没有Recyclerview)也可以正常工作。 当我将RecyclerView和其他视图元素(Button,TextView)组合在一起时,滚动效果不是预期的。
我想将Recyclerview上方的视图设置为列表的第一项,但这会增加适配器的复杂性。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
app:layout_behavior="@string/bottom_sheet_behavior">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text 2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text 3"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:background="@android:color/white"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="true"/>
</LinearLayout>
答案 0 :(得分:0)
将您的LinearLayout
放在NestedScrollView
中:
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
...
... // Texview, ImageView etc.
...
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
如果滚动尚未修复,则必须在设置适配器后执行以下操作:
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
现在,希望您的recyclerview能顺利滚动!
答案 1 :(得分:0)
使用NestedScrollView作为LinearLayout的父级。 它将解决您的问题。