在 CardView 中显示多个项目。类似于 ListView 或 GridView 的东西
Show multiple items in a CardView . Something like a ListView or GridView
我正在以数组形式从 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>
在 CardView
中使用 RecyclerView
而不是 ListView
。示例 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。
我正在以数组形式从 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>
在 CardView
中使用 RecyclerView
而不是 ListView
。示例 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。