如何在recyclerview中仅显示适合x和y的2个网格项?

时间:2015-12-03 11:06:13

标签: java android android-layout gridview android-recyclerview

我的RecyclerView显示在fragment内,网格为Layoutmanager。我的问题是如何在屏幕的一半显示一个网格项目?

我想只显示两列,两列都有相同的高度。

  

这是我的网格项(代表一个网格项):

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

    <android.support.v7.widget.CardView
        android:id="@+id/cardViewGridItemXml"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="3dp"
        android:layout_marginTop="3dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        card_view:cardElevation="0.01dp"
        android:layout_marginBottom="0dp">

        <RelativeLayout
            android:id="@+id/topLayoutGridItemXml"
            android:layout_width="165dp"
            android:layout_height="160dp">

            <ImageView
                android:id="@+id/imgTumbnailGridItemXml"
                android:layout_width="wrap_content"
                android:layout_height="150dp"
                android:scaleType="fitXY"
                android:layout_above="@+id/txtTitleGridItemXml"
                android:src="@drawable/leopard"
                />

            <TextView
                android:id="@+id/txtTitleGridItemXml"
                android:layout_width="fill_parent"
                android:layout_height="40dp"
                android:paddingLeft="5dp"
                android:paddingRight="2dp"
                android:layout_gravity="bottom"
                android:background="#ff444444"
                android:textColor="#fff"
                android:textSize="20dp"
                android:text="Test"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                />


        </RelativeLayout>



    </android.support.v7.widget.CardView>

</LinearLayout>
  

这是我的GridLayoutManager

 GridLayoutManager  gridLayoutManager = new GridLayoutManager(getActivity(), 2);
 recyclerView.setLayoutManager(gridLayoutManager);

This my screen shot

1 个答案:

答案 0 :(得分:0)

用于设置固定的列

 GridLayoutManager  gridLayoutManager = new GridLayoutManager(getActivity(), 2);
 gridLayoutManager.setSpanCount(NUMBER_OF_COLUMN_YOU_NEED);
 recyclerView.setLayoutManager(gridLayoutManager);

public void setSpanCount(int spanCount)
   设置要布置的跨距数   如果getOrientation()VERTICAL,则为列数。
如果getOrientation()HORIZONTAL,则为行数。