layoutinflater.inflate 和 layoutinflater.from 之间的区别

difference between layoutinflater.inflate and layoutinflater.from

  1. layoutinflater.inflate()layoutinflater.from()有什么区别?

  2. 为什么RecyclerView中的onCreateViewHolder()中使用了layoutinflater.from()

  3. RecyclerView中的getItemCount()的作用是什么?

layoutinflater.inflate 用于通过 activity 或您已经具有 activity

上下文的片段来膨胀 xml 布局

layoutinflater.from 用于获取要在其中膨胀 xml 布局的 Layout inflater 的上下文(例如访问适配器 xml 资源文件 class 你需要 activity)

的上下文
  1. layoutinflater.inflate 对比 layoutinflater.from
    Here's a link to the documentation
    LayoutInflater.from 将 return 来自给定上下文的 LayoutInflater 对象。 layoutinflater.inflate 将从资源中扩充一个新视图,并让您将其附加到父视图。

  2. 为什么在Recycler视图的onCreateViewHolder方法中使用了layoutinflater.from?
    这样做是为了让您可以获得对上下文的 layoutinflater 的引用(即您的 activity),然后使用该引用调用指定布局 ID xml 的 inflate() 方法你的 recyclerview 项目。

  3. recycler 视图中 getItemCount 方法的用途是什么?
    Check out the documentation
    如果您没有对支持适配器的数据集的直接引用,则此方法很有用。

What is the difference between layoutinflater.inflate and layoutinflater.from?

在语义上它们是相同的,只是 syntactic sugar.

Why does layoutinflater.from is used in onCreateViewHolder method in RecyclerView?

onCreateViewHolder方法中,您应该实例化一个占位视图,稍后将用于显示一行。如果您想从 xml 文件中实例化行视图,您应该扩充提供视图的文件。 inflation 过程是通过一个 LayoutInflater 对象完成的。如果您不想使用 xml,则不需要那个充气器。

What is the purpose of getItemCount method in recyclerView?

没有这个,回收者视图怎么知道这个列表有多少行?回收器视图首先调用此方法,然后基于它调用 onCreateViewHoldergetItem 方法。