Ответ 1
Я не тестировал его с помощью GridLayout, но для LinearLayout я просто устанавливал маркер для каждого корневого макета listitem. Я предполагаю, что если вы хотите иметь одинаковое пространство между всеми элементами (скажем, 8dp), вам нужно будет сделать это:
- Установите layout_padding 4 dp в RecyclerView.
- Установите layout_margin 4 dp для каждого списка.
Таким образом, у вас будет постоянный 8 dp вокруг каждого элемента.
Код ниже представляет собой горизонтальное RecyclerView, которое отображает изображения с правильным интервалом 8 дп:
<!-- fragment_layout.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
tools:listitem="@layout/list_item" />
</LinearLayout>
<!-- list_item.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp">
<ImageView
android:layout_width="@dimen/thumbnail_size"
android:layout_height="@dimen/thumbnail_size"
android:contentDescription="@string/image_content_desc" />
</LinearLayout>
EDIT: Я понял, что в представлении элемента должна быть родительская ViewGroup, поэтому я обновил фрагмент.