我试图用3列制作简单的GridLayout但是虽然我得到了3列,但我在行之间得到了奇怪的差距。所以,我得到的行中有3个图像,而不是一行是空的(它看起来高度匹配行abov的高度(有图像),然后是3行图像的行,而不是奇怪的间隙......等等。我预计不会得到的空白差距。如何删除这个空白?尝试在recycler视图上将wrap_content设置为layout_height,片段没有帮助。 这是我的代码:
final GridLayoutManager layoutManager = new GridLayoutManager(this,3);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
这是活动的xml:
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.adriagate.adriagateonlineandroid.activities.ImagesActivity">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragmentImagesHeader"
android:name="com.adriagate.adriagateonlineandroid.fragments.ImagesHeader"
tools:layout="@layout/fragment_images_header" android:layout_width="match_parent"
android:layout_height="match_parent" >
</fragment>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragmentImagesGrid"
android:name="com.adriagate.adriagateonlineandroid.fragments.ImagesList"
tools:layout="@layout/fragment_images_list" android:layout_width="match_parent"
android:layout_height="wrap_content" >
</fragment>
</RelativeLayout>
请注意,此布局有一个名为fragmentImagesGrid的重要片段,它具有以下布局:
<FrameLayout 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"
tools:context="com.adriagate.adriagateonlineandroid.fragments.ImagesList">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view_images"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:listitem="@layout/recycler_view_images_one_row"
>
</FrameLayout>
这是回收者视图中一个元素的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
>
<ImageView
android:id="@+id/imageViewImagesAllOneRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
tools:src="@drawable/slika_200_200"
/>
</FrameLayout>
答案 0 :(得分:0)
看起来好像是因为你的图片有不同的尺寸。 将您的项目更改为 LinearLayout ,并将其布局高度和宽度设置为match_parent。设置 gravity =“center”(线性布局)。 另一个问题是 android:layout_height =“wrap_content”。将height属性设置为wrap_content时,RecyclerView无法正常工作。如果您仍想将RecyclerView与wrap_content一起使用,则可以查看this解决方案