如何从 XML 设置 RecyclerView app:layoutManager=""?

新手上路,请多包涵

如何从 XML 设置 RecyclerView layoutManager?

     <android.support.v7.widget.RecyclerView
        app:layoutManager="???"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

原文由 Ilya Gazman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

正如您可以查看文档:

要使用的 Layout Manager 的类名。

该类必须扩展 androidx.recyclerview.widget.RecyclerViewView$LayoutManager 并且具有默认构造函数或带有签名的构造函数 (android.content.Context, android.util.AttributeSet, int, int)

如果名称以 '.' ,则应用程序包为前缀。否则,如果名称包含 '.' ,则假定类名是完整的类名。否则,recycler 视图包 ( 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" :控制LayoutManager的方向(例如: 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:orientationtools:layoutManager )添加它们,然后它只会在代码中影响 IDE 预览,您可以继续设置这些值.

原文由 Gabriele Mariotti 发布,翻译遵循 CC BY-SA 4.0 许可协议

例子

implementation 'com.android.support:recyclerview-v7:28.0.0'

 <android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    tools:layoutManager="android.support.v7.widget.LinearLayoutManager"
    />

layoutManager 可以是 android.support.v7.widget.LinearLayoutManager , android.support.v7.widget.GridLayoutManager

[在这里阅读更多]

原文由 yoAlex5 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题