RecyclerView wrap_content

Я пытаюсь центрировать RecyclerView, когда его layout_width является wrap_content без успеха

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_schemes"
        android:scrollbars="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

Когда RecyclerView задается любая определенная layout_width, скажем, 200dp, тогда он центрируется, иначе он просто выравнивается по левому краю.

Как сделать RecyclerView center_horizontal, если его layout_width равен wrap_content?

3 ответа

Решение

Это связано с тем, как LayoutManager вычисляет размеры. Здесь у вас есть связанная ошибка с некоторыми обходными путями, которые люди использовали.

ПРИМЕЧАНИЕ. С выпуском 23.2 библиотеки поддержки теперь поддерживается содержимое переноса, поэтому похоже, что оно исправило это. Вы можете проверить список изменений здесь

По вашему вопросу, обновление на (март 2016)

Я предлагаю вам обновить до библиотеки поддержки Android 23.2.1 для поддержки WRAP_CONTENT в RecycleVie w.

В RecyclerView layout_width для wrap_content не поддерживалась до 23.2.1.

решена некоторая проблема, например, исправлены ошибки, связанные с различными методами измерения показателей

Проверьте http://developer.android.com/tools/support-library/features.html

Вы пытались использовать RelativeLayout вместо Linear Layout, а затем сделать Recyclerview layout_centerHorizontal="true"

Другие вопросы по тегам