创建一个包含2行的列表,每个视图在Android中都有不同的高度

时间:2016-01-14 16:34:01

标签: android android-layout gridview layout-inflater

我需要创建一个包含2列的列表,每列包含多个视图(图像和文本),问题是我需要为图像使用不同的高度, gridview为每一行创建具有相同高度的列表,我尝试自己创建类似的东西(创建具有2列的容器布局并使用for循环和inflater添加视图)结果,应用程序内存达到他的限制我得到的东西内存异常,如果它不是我必须的enogth 使用android:adjustViewBounds =“true”将图像拟合到布局(得到意外的填充),这样CPU也会比预期更加努力工作 我想适配器应该有帮助,我们可以使用没有listview或gridview的适配器?有一个工具可以创建那种列表吗?

Example for the list

2 个答案:

答案 0 :(得分:3)

如果我理解正确 StaggeredGridLayoutManager 应该做你需要的。使用适配器制作一些RecyclerView并在那里使用它。希望它有所帮助。

答案 1 :(得分:0)

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal"
  android:weightSum="2"
  />

  <RecyclerView
    android:id="leftRecyclerView"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    />

  <RecyclerView
    android:id="rightRecyclerView"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    />

</LinearLayout>

然后你可以实现这两个recyclerviews,它们不会相互依赖,它们将占据屏幕的一半。

对于您需要显示的每个列表,请始终使用RecyclerViews来终止您的CPU和内存。