如何从 XML 设置 RecyclerView app:layoutManager=""?
How to set RecyclerView app:layoutManager="" from XML?
如何从 XML 设置 RecyclerView layoutManager?
<android.support.v7.widget.RecyclerView
app:layoutManager="???"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
您可以查看文档:
Class name of the Layout Manager
to be used.
The class must extend androidx.recyclerview.widget.RecyclerViewView$LayoutManager
and have either a default constructor or constructor with the signature (android.content.Context, android.util.AttributeSet, int, int)
If the name starts with a '.'
, application package is prefixed. Else, if the name contains a '.'
, the classname is assumed to be a full class name. Else, the recycler view package (androidx.appcompat.widget
) is prefixed
使用 androidx 你可以使用:
<androidx.recyclerview.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager">
借助支持库,您可以使用:
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.GridLayoutManager" >
您还可以添加这些属性:
android:orientation
= "horizontal|vertical"
: 控制LayoutManager的方向(eg:LinearLayoutManager
)
app:spanCount
:设置GridLayoutManager
的列数
示例:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
...>
或:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:orientation="vertical"
...>
您还可以使用 tools
命名空间(即 tools:orientation
和 tools:layoutManager
)添加它们,然后它只会影响 IDE 预览,您可以继续在代码中设置这些值。
如果您想将它与 LinearLayoutManager
一起使用
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" >
相当于
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);
我来这里是为了寻找 androidx
版本,虽然很容易弄清楚,就在这里
线性布局管理器:
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
示例:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
GridLayoutManager:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
示例:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>
如您在上面的示例中所见,您可以使用
从 xml
中控制方向
android:orientation="vertical"
和
android:orientation="horizontal"
并使用
设置GridLayoutManager的列数
app:spanCount="2"
我最常用的是:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical" app:spanCount="3"/>
并且:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical"/>
建议设置listitem
,这样你就可以在布局编辑器的预览中看到它的样子了。
如果你想颠倒顺序,我认为你必须改为在代码中执行,如果你真的想看到一些东西,请在 XML 中使用 "tools"...
这对我有用 - 只需添加 app:layoutManager="LinearLayoutManager"
就可以了
<android.support.v7.widget.RecyclerView
android:id="@+id/recordItemList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipToPadding="false"
android:scrollbars="none"
app:layoutManager="LinearLayoutManager"
app:stackFromEnd="true"
app:reverseLayout="true"/>
你可以像这样设置recyclerview的布局管理器,app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
如何从 XML 设置 RecyclerView layoutManager?
<android.support.v7.widget.RecyclerView
app:layoutManager="???"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
您可以查看文档:
Class name of the
Layout Manager
to be used.The class must extend
androidx.recyclerview.widget.RecyclerViewView$LayoutManager
and have either a default constructor or constructor with the signature(android.content.Context, android.util.AttributeSet, int, int)
If the name starts with a
'.'
, application package is prefixed. Else, if the name contains a'.'
, the classname is assumed to be a full class name. Else, the recycler view package (androidx.appcompat.widget
) is prefixed
使用 androidx 你可以使用:
<androidx.recyclerview.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager">
借助支持库,您可以使用:
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.GridLayoutManager" >
您还可以添加这些属性:
android:orientation
="horizontal|vertical"
: 控制LayoutManager的方向(eg:LinearLayoutManager
)app:spanCount
:设置GridLayoutManager
的列数
示例:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
...>
或:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:orientation="vertical"
...>
您还可以使用 tools
命名空间(即 tools:orientation
和 tools:layoutManager
)添加它们,然后它只会影响 IDE 预览,您可以继续在代码中设置这些值。
如果您想将它与 LinearLayoutManager
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" >
相当于
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);
我来这里是为了寻找 androidx
版本,虽然很容易弄清楚,就在这里
线性布局管理器:
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
示例:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
GridLayoutManager:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
示例:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>
如您在上面的示例中所见,您可以使用
从xml
中控制方向
android:orientation="vertical"
和
android:orientation="horizontal"
并使用
设置GridLayoutManager的列数app:spanCount="2"
我最常用的是:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical" app:spanCount="3"/>
并且:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical"/>
建议设置listitem
,这样你就可以在布局编辑器的预览中看到它的样子了。
如果你想颠倒顺序,我认为你必须改为在代码中执行,如果你真的想看到一些东西,请在 XML 中使用 "tools"...
这对我有用 - 只需添加 app:layoutManager="LinearLayoutManager"
就可以了
<android.support.v7.widget.RecyclerView
android:id="@+id/recordItemList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipToPadding="false"
android:scrollbars="none"
app:layoutManager="LinearLayoutManager"
app:stackFromEnd="true"
app:reverseLayout="true"/>
你可以像这样设置recyclerview的布局管理器,app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"