菜鸟教程小白 发表于 2022-12-12 21:57:56

android - 如何使用 RecycleView 显示分层数据结构?


                                            <p><p>在 iOS 中,如果您的数据结构有 <strong>两级</strong>、'sections'、'rows',那么 <code>UITableView</code> 适合呈现数据。它有两个委托(delegate)方法:</p>

<pre><code>numberOfSectionsInTableView(tableView: UITableView) -&gt; Int   
tableView(tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int
</code></pre>

<p>第一种方法询问部分的数量,第二种方法询问某个部分中存在多少行。 </p>

<p>Android 中是否存在这种方法?</p>

<p> <a href="/image/GsuRJ.png" rel="noreferrer noopener nofollow"><img src="/image/GsuRJ.png" alt="enter image description here"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>RecyclerView.Adapter 支持多种开箱即用的 View 类型。您要在任何特定位置显示哪种项目类型取决于您。您可以轻松地使用它来创建部分,例如,如果您定义了两个项目类型 TYPE_HEADER 和 TYPE_ITEM:</p>

<pre><code>@Override
public int getItemViewType(int position) {
    if (isHeader(position)) {
      return TYPE_HEADER;
    } else {
      return TYPE_ITEM;
    }
}
</code></pre>

<p>然后,您可以使用 <code>onCreateViewHolder</code> 来膨胀适当的布局,并使用 <code>onBindViewHolder</code> 来使用它。</p>

<pre><code>@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
      View v = ... ; // inflate here
      return new HeaderViewHolder(v);
    } else {
      View v = ... ; // inflate here
      return new ItemViewHolder(v);
    }   
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if (holder instanceof HeaderViewHolder) {
      // handle header
    } else if (holder instanceof ItemViewHolder {
      // handle item
    }
}
</code></pre>

<p>您可以使用您选择的数据结构。我更喜欢使用我自己实现的树状结构,或者只是简单的 ArrayList 和 instanceof 来检测项目是标题还是内容。</p></p>
                                   
                                                <p style="font-size: 20px;">关于android - 如何使用 RecycleView 显示分层数据结构?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39228288/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39228288/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - 如何使用 RecycleView 显示分层数据结构?