成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Android使用Kotlin實現(xiàn)多節(jié)點(diǎn)進(jìn)度條

瀏覽:162日期:2022-09-25 13:14:43

時間軸主要使用Recyclerview來實現(xiàn)。開發(fā)語言使用Kotlin,代碼相對java少了許多也簡潔許多

源代碼下載地址

效果圖:

Android使用Kotlin實現(xiàn)多節(jié)點(diǎn)進(jìn)度條

MainActivity.kt

package com.example.lee.linenodeimport android.annotation.SuppressLintimport android.os.Buildimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.support.v7.widget.LinearLayoutManagerimport kotlinx.android.synthetic.main.activity_main.*import kotlinx.android.synthetic.main.item_line_node.view.*class MainActivity : AppCompatActivity() { private var list = arrayListOf<StepBean>() private var lineNodeAdapter: LineNodeAdapter<StepBean>? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initRecyclerView() } private fun initRecyclerView() { getData() //創(chuàng)建一個繼承于抽象類(LineNodeAdapter)的實例 lineNodeAdapter = object : LineNodeAdapter<StepBean>(this, list) { override fun convert(viewHolder: LineNodeViewHolder, t: StepBean) { viewHolder.itemView.title_txt.text = t.title viewHolder.itemView.time_txt.text = t.time viewHolder.itemView.num_txt.text = t.num.toString() if (t.num == 1) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { viewHolder.itemView.left_view.background = null } } if (t.num == 4) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { viewHolder.itemView.right_view.background = null } } if (t.num < 3) viewHolder.itemView.num_txt.setBackgroundResource(R.drawable.shap_line_number_circle_red) } } val linearLayoutManager = LinearLayoutManager(this) linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL //使用來自主代碼集的 R.layout.activity_main,而不是 findViewById(R.id.ln_recycler_view) as Recyclerview ln_recycler_view.layoutManager = linearLayoutManager ln_recycler_view.adapter = lineNodeAdapter } private fun getData() { for (i in 1..4) { list.add(StepBean(i, '2017-9-27n17:1$i', '步驟$i')) } }}

activity_main.xml

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent'> <android.support.v7.widget.RecyclerView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_centerHorizontal='true' /> </RelativeLayout>

LineNodeAdapter.kt //RecyclerView的適配器

package com.example.lee.linenodeimport android.content.Contextimport android.support.v7.widget.RecyclerViewimport android.support.v7.widget.RecyclerView.Adapterimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport kotlinx.android.synthetic.main.item_line_node.view.*/** * Created by lee on 17-9-27. */abstract class LineNodeAdapter<T>(val context: Context, val list: List<T>) : Adapter<LineNodeAdapter.LineNodeViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): LineNodeViewHolder { return LineNodeViewHolder(LayoutInflater.from(context).inflate(R.layout.item_line_node, parent, false)) } override fun onBindViewHolder(viewHolder: LineNodeViewHolder, position: Int) { convert(viewHolder, list.get(position)) } abstract fun convert(viewHolder: LineNodeViewHolder, t: T) override fun getItemCount(): Int { return list.size } class LineNodeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { }}

item_line_node.xml //這個文件是時間軸item的布局文件

<?xml version='1.0' encoding='utf-8'?> <LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='wrap_content' android:layout_height='wrap_content' android:gravity='center_horizontal' android:orientation='vertical'> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_gravity='center_horizontal' android:text='步驟' /> <LinearLayout android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_gravity='center_horizontal' android:gravity='center_vertical' android:orientation='horizontal'> <View android: android:layout_width='30dp' android:layout_height='1dp' android:layout_centerVertical='true' android:background='#A6A6A6' /> <TextView android: android:layout_width='20dp' android:layout_height='20dp' android:background='@drawable/shap_line_number_circle_grey' android:gravity='center' android:text='1' android:textColor='@color/colorWhite' /> <View android: android:layout_width='30dp' android:layout_height='1dp' android:layout_centerVertical='true' android:background='#A6A6A6' /> </LinearLayout> <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_gravity='center_horizontal' android:gravity='center_horizontal' android:text='2017-09-27n15:56' /></LinearLayout>

StepBean.kt //時間節(jié)點(diǎn)實體類

package com.example.lee.linenode/** * Created by lee on 17-9-27. */class StepBean(var num: Int, var time: String, var title: String)//直接在主構(gòu)造函數(shù)里聲明屬性

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
在线免费观看日本一区| 久久先锋资源网| 亚洲影视综合| 国产日本精品| 亚洲国产一区二区三区在线播| 欧美另类综合| 欧美另类视频| 亚洲精品欧洲精品| 一本色道88久久加勒比精品| 国产偷自视频区视频一区二区| 99re热精品| 国产精品v欧美精品v日韩| 不卡的av网站| 色综合婷婷久久| 狠狠爱综合网| 小嫩嫩精品导航| 在线视频中文字幕一区二区| 欧美日韩亚洲不卡| 日韩欧美综合在线| 国产亚洲女人久久久久毛片| 亚洲欧洲日产国码二区| 亚洲另类春色校园小说| 日日夜夜精品视频免费| 精品一区二区影视| 成人黄色av网站在线| 欧美日韩精品一区| 在线视频欧美一区| 欧美三级中文字幕在线观看| 日韩免费性生活视频播放| 中文字幕乱码久久午夜不卡| 亚洲精品视频自拍| 麻豆成人在线观看| 不卡大黄网站免费看| 激情久久婷婷| 在线免费观看日本欧美| 精品电影一区二区| 亚洲猫色日本管| 久久99九九99精品| 99国产精品久久久久| 9国产精品视频| 欧美另类变人与禽xxxxx| 国产亚洲短视频| 亚洲成人av电影| 国产成人av自拍| 宅男噜噜噜66国产日韩在线观看| 欧美三级乱人伦电影| 国产日韩欧美不卡在线| 天天操天天综合网| 91美女福利视频| 久久国产欧美| 久久青草欧美一区二区三区| 亚洲第一会所有码转帖| 粉嫩绯色av一区二区在线观看| 精品福利av| 欧美精品18+| 亚洲欧美日韩在线| 成人综合日日夜夜| 亚洲一区三区电影在线观看| 日韩欧美的一区| 亚洲国产中文字幕在线视频综合 | 亚洲欧洲在线观看av| 黄色日韩网站视频| 国产精品久久久免费| 欧美成人官网二区| 免费的国产精品| 亚洲激情午夜| 久久综合久久鬼色| 免费的国产精品| 一本色道久久综合亚洲精品高清| 日韩精品专区在线| 青娱乐精品视频| 在线视频免费在线观看一区二区| 欧美va在线播放| 久久99国产精品免费网站| 日韩视频精品| 欧美国产日韩一二三区| 国产suv精品一区二区883| 91福利视频在线| 亚洲综合男人的天堂| 欧美日韩视频在线一区二区观看视频 | 欧美色综合网站| 亚洲影院理伦片| 亚洲图色在线| ww亚洲ww在线观看国产| 极品尤物av久久免费看| 一本久久综合亚洲鲁鲁五月天| 1024成人网色www| 欧美黄污视频| 久久欧美中文字幕| 成人一道本在线| 日韩午夜av电影| 国产一区不卡在线| 在线不卡中文字幕播放| 免费看欧美女人艹b| 久久久天天操| 亚洲自拍另类综合| 免费看的黄色欧美网站| 一区二区三区在线观看动漫| 亚洲激情偷拍| 亚洲欧美一区二区三区国产精品| 欧美日韩午夜| 中文字幕一区视频| 亚洲国产婷婷| 一区二区三区加勒比av| 亚洲高清视频一区| 亚洲乱码国产乱码精品精的特点| 最新成人av网站| 一区二区在线免费| 免费在线成人| 美女视频一区二区三区| 欧美乱妇一区二区三区不卡视频| 激情综合五月婷婷| 日韩午夜av一区| www.久久久久久久久| 久久先锋影音av鲁色资源| 欧美一区精品| 亚洲欧洲制服丝袜| 久久久精品网| 久久国产精品第一页| 欧美一区二区三区免费视频| 成人激情小说网站| 国产精品嫩草影院av蜜臀| 亚洲精品乱码久久久久久蜜桃麻豆 | 不卡电影免费在线播放一区| 国产欧美一区二区在线观看| 亚洲国产美女| 日韩电影在线免费| 日韩欧美资源站| 欧美 日韩 国产精品免费观看| 中文字幕综合网| 色婷婷一区二区三区四区| 国产成人在线视频免费播放| 久久久久久久久免费| 99re热精品| 黑人精品欧美一区二区蜜桃| 久久这里只有精品首页| 最近看过的日韩成人| 老司机免费视频一区二区| 日韩免费观看2025年上映的电影| 欧美日韩网址| 热久久久久久久| 久久久精品免费观看| 欧美一级久久| 成人理论电影网| 亚洲一区二区视频在线| 91 com成人网| 亚洲精品韩国| 国产精品99久久久久| 国产精品天天摸av网| 在线视频欧美区| 欧美精品偷拍| 日本美女一区二区三区| 久久久不卡网国产精品二区| 亚洲尤物影院| 99久久777色| 全国精品久久少妇| 中文字幕精品一区二区精品绿巨人 | 狠狠v欧美v日韩v亚洲ⅴ| 国产欧美一区二区精品仙草咪| 国产精品日韩欧美一区二区三区| 国产成人在线色| 亚洲精品日韩综合观看成人91| 欧美一区二视频| 性感少妇一区| 欧美日韩国产综合在线| 国产精品99久久久久| 亚洲国产日韩综合久久精品| 久久综合成人精品亚洲另类欧美 | 中文字幕一区二区不卡| 91精品国产乱| 美日韩精品免费| 国产精品播放| 成人av在线资源| 久久99久久久久| 一区二区三区四区蜜桃 | 日韩中文字幕av电影| 国产精品色呦呦| 欧美成人精精品一区二区频| 日本韩国欧美三级| 中文一区二区| 亚洲无线视频| 欧美一区二区三区在线播放| 国产在线播放一区三区四| 五月天中文字幕一区二区| 综合婷婷亚洲小说| 国产欧美日韩在线| 精品国产伦一区二区三区观看方式| 欧美性生交片4| 亚洲一区二区三区涩| 日韩一区二区久久| 午夜日韩激情| av成人免费在线观看| 国产91精品一区二区麻豆亚洲| 久久99精品久久久久久久久久久久| 亚洲综合色视频| 一区二区三区在线播放| 亚洲欧美日韩综合aⅴ视频| 日韩伦理av电影| 中文字幕中文字幕中文字幕亚洲无线| 久久精品视频免费观看|