安卓 - 什么是布局管理器?

5
我看到过许多种布局管理器,比如:
  1. LineraLayoutManager
  2. RecyclerView.LayoutManager
  3. ListViewLayoutManager
  4. 等等
那么,什么是 LayoutManager,它的作用是什么,有哪些不同类型的 LayoutManager?在安卓中,所有 UI 组件(如 ButtonTextViewEditText 等)是否都有它们自己的 LayoutManager

https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager - aga
3个回答

15
适配器(Adapters)仅负责为项目(称为ViewHolder)创建和管理视图,这些类不决定在显示它们时如何排列这些视图。相反,它们依赖于一个名为LayoutManager的单独类。
LayoutManager是一个类,告诉适配器如何排列这些项目。例如,您可能希望将这些项目从上到下放在一行中,或者您可能希望将它们像画廊一样排列在网格中。您不需要在适配器中编写此逻辑,而是在LayoutManager中编写并将其传递给View (RecyclerView)。
初学者可能会问,为什么要这样做? 答案是灵活性。使用此模式,每当您想更改项目的排列方式时,您不必修改适配器或RecyclerView。此外,如果没有这种方法,您将受限于预构建类提供的功能。您可以通过扩展LayoutManager类来构建自己的LayoutManager。
还有一些常用的LayoutManager可供使用,我将列出其中两个:
LinearLayoutManager 根据方向将项目排列在1列或1行中。例如,水平LinearLayoutManager将在1行中从左到右放置项目。
GridLayoutManager按照提供的行数和列数排列项目,就像画廊中的图像一样。

2
LayoutManagerRecyclerView的内部类。根据文档,LayoutManager及其子类负责在RecyclerView中测量和定位项目视图。

已知的直接子类

LinearLayoutManager、StaggeredGridLayoutManager

已知的间接子类

GridLayoutManager、WearableLinearLayoutManager

因此,LinearLayoutManager允许RecyclerView将数据显示为列表,而GridLayoutManager则允许组织可滚动的表格/网格中的项目。
回答您的第二个问题-通常情况下,其他组件通常没有自己的LayoutManager,但可能会有一些例外。

0

布局管理器使我们能够通过确定容器内组件的大小和位置来控制GUI表单中可视组件的排列方式。

GridLayout:它将所有组件排列在等大小的单元格网格中,从左到右、从上到下添加它们。每个单元格只能放置一个组件,网格的每个区域都具有相同的大小。

LinearLayout:它将布局中的所有组件排列在单个列/行中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接