本文是介绍 RecyclerView 入门基础 系列文章 的第四篇。假定您现已对创立 RecyclerView 有了必定的知道,请持续阅览本文。假定没有了解,建议您首要阅览本系列中的 榜首篇文章。

您能够经过在 RecyclerView 中增加 Header 来为运用数据补偿上下文信息。尽管您也能够在 LinearLandroid平板电脑价格ayout 中将 TextView 置于 RecyclerView 之上来仿照 header 的作用,可是这个仿照的 header 在用户滑动屏幕的时分乃至是滑到列表底部的时分仍然会变量是什么意思驻留在屏幕上。而运用真实的 headerandroid开发 元素,您能够完结在用户龚俊滑动 Recandroid的drawable类yclerView 的时分,header 随之移动到屏幕之外。

本文中的示例会在 RecyclerView 中增加 Header,列表中https和http的差异会闪现不同类型的花。Header 闪现 “Flower Finder”,并且闪现列表中花的数量。

RecyclerView | 在 RecyclerView 中运用 header 快人一步

创立 header 布局

创立一个布局文件,其间界说 Header 的展现作用。

RecyclerView | 在 RecyclerView 中运用 header 快人一步

<!-- Copyright 2019 Google LLC.
SPDX-License-Identifier: Apache-2.0 -->
<Linea变量值rLayout
xmlns:android="http://schemas.android.com/apk/res/androandroid下载id"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/header_android是什么手机牌子text"
android:layout_变量泵width="wrap_c变量的界说ontent"
android:layout_height="wrap_content"
anapproachdroid:layout_graviappointmentty="center"
androi变量名的命名规则d:text="@string/flower_finder"
android:textAppearance="?attr/textAppearanceHeadline3" /android下载&gt宫颈癌前期症状;
<TextView
ahttps和http的差异ndroid:id="@+id/flower_number_app装置下载text"
android:layappearanceout_width="wrap_content"
android:layout_height="wrap_conte变量与函数nt"
android:layout_gravappleity="center"
android:textAppearance="?attr/textAppearappointmentanceHeadline6" />
<TextView
android:id="@+id/flower_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/flower_string"
android:androidstudio装置教程textAppearance="?attr/textAppearanceHeadline6" />
</LinearLayout>

创立 HeaderAdapthttp 404er 和 HeaderViewHolder

创立新文件来恳求并且绑定 Header 的视图。

HeaderAdapter 承继自 RecyclerView.Aandroid系统dapter<RecyclerView.ViewHolder>()

<!-- Copyright 2019 Google LLCandroid系统.
SPDX-License-Idappleentifier: Apache-2.0 -->
class HeaderAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder>(){
}

HeaderAdapter 中,增加一个承继自 RecyclerView.ViewHolderViewHolder。假定您需求动态更新文宫颈癌本,增加一个变量代表需求更新内容的 TextView。创立 binhttp://192.168.1.1登录d() 函数来运变量用传入的字符串更新application TextView。

 <!-- Copyright 2019 Google LLC.
SPDX-License-Identifier: Apache-2.0 -->
class HeaderViewHolder(view: View) : RecyclerView.ViewHolder(view){
prapplicationivate val flowerNumberTextView: TextView = itemView
.findViewById(R.id.flower_number_text)
fun bind(flowerCount: Int) {
flower枸杞NumberTextView.text = flowerCount.toString()
}
}

在类界说中,批改 Adapter 的参数表以接纳 HeaderViewHoldhttp://192.168.1.1登录er

<变量的界说!-- Copyright 2019 Google LLC.
SPDX-License-Identifier:appearance Apache-2.0 -->
class HeaderAdapter: RecyclerView.Adapter<HeaderAdap龚俊ter.HeaderViewHolder>() {
}

由于 Adapter 承继自 RecyclerView.Adapter,它需求完结 onCreateViewHolder()android开发onBindViewHolder()getItemCount()

  • onCreateViewHolder() 担任填充视图并且回来 HeaderViewHoldehttp://www.baidu.comr
  • getItemCount() 仅回来数值 1,由于仅有一个 Header 元素
  • onBindViewHolder() 将数据绑定到 Header
 &lappointmentt;!-- Copyright 2019 Google LLC.
SPDX-Lihttp 404cense-Identifier: Apache-2.0 -->
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HeaderViewHolderAPP {
val view = LayoutInflandroid的drawable类ater.from(parent.context)
.inflate(R.layout.header_item, parent, false)
return HeaderViewHolder(view)
}
override fun onBindViewHoandroid是什么手机牌子landroid什么意思der(holder: HeaderViewHolder, position: Int) {
holder.bihttp 404nd(flowerCount)
}
override fun getItem宫颈癌疫苗Count(): Int {
return 1
}

在 Activity 类中运用 ConcatAdapter

在 Activity 类中,创立一个变量代表 HeaderAdapter(),并将其置宫颈癌前期症状于 RecyclerView 的 Adapter 之上。

<!-- Copyright 2019 Google LLC.
SPDX-License-Identifier: Apache-2.0 -->
val headerAdapterAndroid = HeaderAdapter()
val flowersAdapter = FlowersAdapter { flower -> adhttp 404apterOnClick(flower) }

然后运用 ConcatAdapter 将这两个 adapter 增加到 RecyclerViewConcatAdapter 会顺次闪现多个Adapter 的内容。在 flowersAdapter 之前增加 headerAdapproveapter

<!-- Copyright 2019 Google LLC.
SPDX-GoLicense-Identifier: Apache-2.0 -android平板电脑价格->
val concatAdapter = ConcatAdapter(headerAdapter, flowersAdapter)
recyclerView.adapter = concatAdapter

工作代码。大功告成!增加 Header 便是这么简略。

RecyclerView | 在 RecyclerView 中运用 header 快人一步

下一步

关于 Header 的完整示例代码,请查阅: github.com/android/vie…

感谢阅览 RecyclerView 系列 的最终一篇。假定您没有阅览本系列中的其它文章宫颈癌疫苗,欢迎查阅变量的界说以下列表并阅览。

  • 实战 | 知道 RecyclerView
  • RecycappstorelerView | 在 RecyclerView 中运用 Lhttp协议istAdapte变量泵r
  • RecyclerView | 处理 RecyclerView 中的点击事情