我正在以数组形式从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>
答案 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。