在CardView中显示多个项目。像ListView或GridView之类的东西

时间:2018-04-08 18:59:46

标签: android listview android-cardview

Sample Card View

我正在以数组形式从FireStore数据库中检索数据。我想在CardView中显示这些值。我尝试创建一些固定视图以显示项目的第一件事。但挑战在于我不知道那些物品的数量。它可能是2或12但不超过。比我尝试在CardView中设置ListView但我无法获得所需的结果。所以你能告诉我如何做到这一点。

 <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/card3_details_activity"
        android:layout_below="@id/card2_details_activity"
        android:layout_marginTop="10dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        app:cardElevation="4dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">



           <ListView
                android:layout_marginStart="40dp"
                android:layout_width="wrap_content"
                android:layout_height="100dp"
                android:id="@+id/list_facilities_details"
                android:fontFamily="@font/spinnaker"
                android:layout_marginTop="15dp"


                />


        </RelativeLayout>


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

1 个答案:

答案 0 :(得分:1)

RecyclerView内使用ListView代替CardView。示例XML:

<android.support.v7.widget.CardView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

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

现在以编程方式将RecyclerView上的固定大小设置为true,设置LayoutManager并创建自定义RecyclerView.Adapter以填充RecyclerView的行:

RecyclerView recyclerView = parentView.findViewById(R.id.rv);
recyclerView.setHasFixedSize(true);

LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(layoutManager);

MyCustomAdapter adapter = new MyCustomAdapter(context, dataSet);
recyclerView.setAdapter(adapter);

对于您的情况,现在有一个名为FirebaseUI的库,其中包含FirebaseRecyclerAdapter等等。用它来填充您的RecyclerView。