本文是介绍 RecyclerView 入门基础 系列文章 的第四篇。假定您现已对创立 RecyclerView 有了必定的知道,请持续阅览本文。假定没有了解,建议您首要阅览本系列中的 榜首篇文章。
您能够经过在 RecyclerView
中增加 Header
来为运用数据补偿上下文信息。尽管您也能够在 LinearLandroid平板电脑价格ayout
中将 TextView
置于 RecyclerView
之上来仿照 header 的作用,可是这个仿照的 header 在用户滑动屏幕的时分乃至是滑到列表底部的时分仍然会变量是什么意思驻留在屏幕上。而运用真实的 headerandroid开发 元素,您能够完结在用户龚俊滑动 Recandroid的drawable类yclerView
的时分,header 随之移动到屏幕之外。
本文中的示例会在 RecyclerView
中增加 Header
,列表中https和http的差异会闪现不同类型的花。Header 闪现 “Flower Finder”,并且闪现列表中花的数量。
创立 header 布局
创立一个布局文件,其间界说 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下载>宫颈癌前期症状;
<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
的视图。
Header
的 Adapter
承继自 RecyclerView.Aandroid系统dapter<RecyclerView.ViewHolder>()
。
<!-- Copyright 2019 Google LLCandroid系统.
SPDX-License-Idappleentifier: Apache-2.0 -->
class HeaderAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder>(){
}
在 Header
的 Adapter
中,增加一个承继自 RecyclerView.ViewHolder
的 ViewHolder
。假定您需求动态更新文宫颈癌本,增加一个变量代表需求更新内容的 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 增加到 RecyclerView
。ConcatAdapter
会顺次闪现多个Adapter 的内容。在 flowersAdapter
之前增加 headerAdapproveapter
。
<!-- Copyright 2019 Google LLC.
SPDX-GoLicense-Identifier: Apache-2.0 -android平板电脑价格->
val concatAdapter = ConcatAdapter(headerAdapter, flowersAdapter)
recyclerView.adapter = concatAdapter
工作代码。大功告成!增加 Header 便是这么简略。
下一步
关于 Header 的完整示例代码,请查阅: github.com/android/vie…
感谢阅览 RecyclerView 系列 的最终一篇。假定您没有阅览本系列中的其它文章宫颈癌疫苗,欢迎查阅变量的界说以下列表并阅览。
- 实战 | 知道 RecyclerView
- RecycappstorelerView | 在 RecyclerView 中运用 Lhttp协议istAdapte变量泵r
- RecyclerView | 处理 RecyclerView 中的点击事情