如何从 XML设置RecyclerView layoutManager?
<android.support.v7.widget.RecyclerView app:layoutManager="???" android:layout_width="match_parent" android:layout_height="match_parent"/>
正如您可以查看文档:
Layout Manager 要使用的类名。 该类必须扩展androidx.recyclerview.widget.RecyclerViewView$LayoutManager并具有默认构造函数或带有签名的构造函数(android.content.Context, android.util.AttributeSet, int, int) 如果名称以 开头'.',则应用程序包为前缀。否则,如果名称包含 a '.',则假定类名是完整的类名。否则,recycler 视图包 ( androidx.appcompat.widget) 是前缀
Layout Manager 要使用的类名。
Layout Manager
该类必须扩展androidx.recyclerview.widget.RecyclerViewView$LayoutManager并具有默认构造函数或带有签名的构造函数(android.content.Context, android.util.AttributeSet, int, int)
androidx.recyclerview.widget.RecyclerViewView$LayoutManager
(android.content.Context, android.util.AttributeSet, int, int)
如果名称以 开头'.',则应用程序包为前缀。否则,如果名称包含 a '.',则假定类名是完整的类名。否则,recycler 视图包 ( androidx.appcompat.widget) 是前缀
'.'
androidx.appcompat.widget
使用 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"
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 预览,您可以继续在代码中设置这些值。
tools
tools:orientation
tools:layoutManager