我正在制作一个允许用户搜索各个国家的应用程序。用户可以进行过滤搜索(例如,仅搜索特定大陆的国家等)。所有这些信息(国家及其大洲都存储在我的Firebase实时数据库中)。
在我的FilteredResults.java
片段中,我想拥有可变数量的ImageViews(List<String>
的大小数)。
我画的草图可能会帮助您更好地理解它:
每个矩形之一是ImageViews。 这是我的XML(我只有一个scrollview,因为我不知道如何创建ImageView的“数组” ...)
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/txtResultadosFiltrados"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="28dp"
android:layout_marginTop="0dp"
android:text="Resultados Filtrados"
android:textColor="#323B45"
android:textSize="24sp"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="28dp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ScrollView>
</RelativeLayout>
答案 0 :(得分:2)
为了以最佳方式解决问题,您应该使用以下一种:
这些视图支持所谓的adapters
,它们在模型(在您的情况下为List<String>
)和项目列表(在您的情况下为ImageView
列表)之间进行映射。
这里有一个简单应用程序的完整示例,该应用程序从Firebase数据库加载帖子列表: https://github.com/firebase/quickstart-android/tree/master/database
该示例基于RecyclerView
,您可以在此处找到直接的用法:
https://github.com/firebase/quickstart-android/blob/master/database/app/src/main/java/com/google/firebase/quickstart/database/fragment/PostListFragment.java
答案 1 :(得分:1)
使用RecyclerView
代替ScrollView
。保留ImageView
数组并将其添加到ScrollView
中会带来爆炸性的头痛。