#java #android #gridview #android-recyclerview
#java #Android #просмотр сетки #android-recyclerview
Вопрос:
Просто пытаюсь центрировать мой RecyclerView по горизонтали, но такие строки, как gravity: «center» или layout_centerHorizontal=»true», не работают.
Вот xml:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@ id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
И здесь код Java:
mRecyclerView = findViewById(R.id.recycler_view);
itemLayoutManager = new GridLayoutManager(this, 3);
mRecyclerView.setLayoutManager(itemLayoutManager);
...
mItemAdapter = new ItemAdapter(MainActivity.this, mItemList);
mRecyclerView.setAdapter(mItemAdapter);
Когда я запускаю приложение, recyclerview выравнивается по левому краю.
[![изображение][1]][1]
Что именно мне нужно сделать, чтобы центрировать содержимое так, чтобы поля были одинаковыми слева и справа? Спасибо. [1]:https://i.stack.imgur.com/0LNoY.png
Ответ №1:
Это не центрируется, потому что оба layout_width совпадают с parrent попробуйте использовать wrap_content в recyclerview и layout_centerHorizontal = true также в recyclerview. Свойство Gravity предназначено для LinearLayout. Подробнее почему вы используете менеджер компоновки сетки?
Лучшее решение — сохранить этот код таким образом, а в строке, используемой для RecyclerView, установить изображение в центре строки: например
RowLayout:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
Для Layout Manager используйте LinearLayoutManager, если вы не используете эти два столбца