如何在触摸项目上将RecyclerView扩展为全屏?

时间:2017-08-16 07:38:38

标签: android android-recyclerview

我有一些RecyclerView位于屏幕底部和其他视图下方。目前,它是水平的,只有1行。当用户触摸某个项目时,我想将其扩展为全屏以获得更好的视图。在扩展时,它必须有2列。此外,用户可以通过单击扩展完成后出现的菜单上的后退按钮返回。

我做了什么? 我找到了StaggeredGridLayoutManager。它允许更改列数。 我的问题是什么?我无法确定是否必须使用其他活动。但我想这是多余的。我怎样才能在一项活动中实现这一目标?如何处理RecyclerView以上的其他视图?

1 个答案:

答案 0 :(得分:1)

对于您正在寻找的内容,并且没有更具体的内容,BottomSheet可能是解决方案。见这里:https://code.tutsplus.com/articles/how-to-use-bottom-sheets-with-the-design-support-library--cms-26031

或者,您可以使用FrameLayout包含RecyclerView和另一个包含所有其他视图的布局。将RecyclerView重力设置为bottom并将其设置为行的高度(在示例中为80dp)。请注意RecyclerView是最后一个元素,因此它在其他元素之上绘制:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!-- other views here -->
    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_gravity="bottom"/>

</FrameLayout>