我应该将什么LayoutManager用于RecyclerView以避免均匀分布卡片?

时间:2015-05-15 14:46:11

标签: android android-recyclerview

tl; dr:我需要做什么才能从第一张图片而不是第二张图片中获得结果(关于蓝色方块)?

首先,代码段位于https://gist.github.com/exhuma/125ec8a5e32b395fd786 和图像供参考,代表预期结果:

intended outcome

我有3个RecyclerViews的应用程序。中心有一个“主要”列表,左侧和右侧有两个“状态视图”。主列表按预期工作,它应该是可滚动的。左边和右边的卡片很少(如果有的话)填满整个屏幕高度。滚动将是一个很好的,但没有必要。它们都代表了一些项目的“待处理队列”,这些项目将很快出现在主列表中,并以小图标显示。

我尝试以与中央视图相同的方式开展业务。但是当我这样做时,它导致“队列”列表中的卡片均匀分布,如下所示:

this is not what I want

我的问题是: LayoutManager是做什么用的?或者我应该使用除RecyclerView以外的其他内容吗?像ListView

1 个答案:

答案 0 :(得分:0)

解决方案是强制RecyclerView的卡片固定大小。替换这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <ImageView
        android:id="@id/statusIcon"
        android:maxHeight="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

有了这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <ImageView
        android:id="@id/statusIcon"
        android:layout_width="20dp"
        android:layout_height="20dp" />
</LinearLayout>

显然,这不会随着屏幕尺寸而扩展。仍然可能有更好的解决方案。这适用于现在......