RecyclerView具有固定行数

时间:2016-11-02 09:27:07

标签: android android-recyclerview

我想要一个具有固定行数不可滚动的recyclerView,并且每行都有一个固定的高度以填充所有屏幕。例如,我有4行,因此行高应为recyclerView height / 4。

行布局.xml

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"
android:clickable="true"

>
<ImageView
    android:id="@+id/ivImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:scaleType="centerCrop"
    android:src="@drawable/carte_recto"
    app:layout_collapseMode="parallax"
    app:layout_collapseParallaxMultiplier="0.7"
    android:layout_margin="0dp"
    android:padding="0dp"
    android:background="@color/colorPrimary"/>

RecyclerView:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="0dp"
    android:padding="0dp"
    android:scrollbars="none" />

java代码:

 mRecyclerView.setHasFixedSize(true);
    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(),1, LinearLayoutManager.VERTICAL, false);
    mRecyclerView.setLayoutManager(gridLayoutManager);
    mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), onItemClickListener));
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setAdapter(storeAdapter);
    storeAdapter.notifyDataSetChanged();

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用跨度为4的网格布局管理器。

layoutManager = new GridLayoutManager(getContext(), **4**, GridLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);

答案 1 :(得分:0)

在您的适配器

 @Override
public int getItemCount() {
    return 4;
}

通过返回特定数字,您可以修复迭代次数。

如果您想让它不可滚动,请return 1中的getCount()并在MyRow.xml中定义4个项目并使用weight_sum