tl; dr:我需要做什么才能从第一张图片而不是第二张图片中获得结果(关于蓝色方块)?
首先,代码段位于https://gist.github.com/exhuma/125ec8a5e32b395fd786 和图像供参考,代表预期结果:
我有3个RecyclerViews的应用程序。中心有一个“主要”列表,左侧和右侧有两个“状态视图”。主列表按预期工作,它应该是可滚动的。左边和右边的卡片很少(如果有的话)填满整个屏幕高度。滚动将是一个很好的,但没有必要。它们都代表了一些项目的“待处理队列”,这些项目将很快出现在主列表中,并以小图标显示。
我尝试以与中央视图相同的方式开展业务。但是当我这样做时,它导致“队列”列表中的卡片均匀分布,如下所示:
我的问题是: LayoutManager是做什么用的?或者我应该使用除RecyclerView
以外的其他内容吗?像ListView
?
答案 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>
显然,这不会随着屏幕尺寸而扩展。仍然可能有更好的解决方案。这适用于现在......