日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

時(shí)間軸主要使用Recyclerview來(lái)實(shí)現(xiàn)。開(kāi)發(fā)語(yǔ)言使用Kotlin,代碼相對(duì)java少了許多也簡(jiǎn)潔許多

源代碼下載地址

效果圖:

Android使用Kotlin實(shí)現(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)建一個(gè)繼承于抽象類(lèi)(LineNodeAdapter)的實(shí)例 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 //使用來(lái)自主代碼集的 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 //這個(gè)文件是時(shí)間軸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 //時(shí)間節(jié)點(diǎn)實(shí)體類(lèi)

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ù)里聲明屬性

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

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久只有精品| 日韩在线播放一区二区| 香蕉成人久久| 欧洲一级精品| 国产福利资源一区| 午夜久久av | 久久九九精品| 欧美激情三区| 日韩精品免费一区二区夜夜嗨 | 日韩黄色av| 99国产精品久久久久久久| 久久久久久婷| 麻豆视频一区| 欧美亚洲色图校园春色| 99热精品在线| 激情六月综合| 亚洲www啪成人一区二区| 国产96在线亚洲| 麻豆精品在线观看| 国产精品s色| 国产精品xxx| 国产精品一区二区三区av麻| 日韩欧美中文字幕电影| 久久最新视频| 亚洲欧美日韩一区在线观看| 国产精品99一区二区| 在线看片福利| www.51av欧美视频| 精品国产欧美日韩| 国产日韩三级| 久久a爱视频| 卡一精品卡二卡三网站乱码| 国产欧美69| 欧美国产另类| 麻豆中文一区二区| 福利视频一区| 日本精品不卡| 成人精品久久| 日韩88av| аⅴ资源天堂资源库在线| 精品国产乱码| 久久女人天堂| 国产精品yjizz视频网| 日本一二区不卡| 久久亚洲人体| 日韩欧美自拍| 红桃视频国产精品| 亚洲综合中文| 婷婷精品在线观看| 欧美精品福利| 国产精品porn| 国产一区二区三区四区五区传媒 | 亚洲欧美日本日韩| 久久国产成人| 三级亚洲高清视频| 日韩成人精品一区二区三区| 日本精品一区二区三区在线观看视频| 日本成人在线一区| 欧美精品国产白浆久久久久| 你懂的国产精品永久在线| 麻豆国产精品| 久久精品成人| 免费视频最近日韩| 久久国产乱子精品免费女| 国语精品一区| 中文字幕在线看片| 黄色成人精品网站| 啪啪亚洲精品| 中文字幕在线视频久| 久久精品亚洲人成影院| 久久最新视频| 国产香蕉精品| 亚洲美女久久精品| 亚洲尤物在线| 97成人超碰| 日韩国产激情| 欧美福利一区| 日本va欧美va精品发布| 麻豆理论在线观看| 亚洲国产日韩欧美在线| 亚洲精品日本| 精品一区二区男人吃奶| av亚洲一区二区三区| 日韩影院在线观看| 青青草视频一区| 日韩在线观看不卡| 婷婷综合国产| 岛国精品一区| 亚洲欧美日韩国产一区二区| 国产黄色一区| 狠狠久久婷婷| 久久免费精品| 中文精品视频| 激情不卡一区二区三区视频在线| 午夜国产欧美理论在线播放| 国产精品嫩模av在线| 不卡中文字幕| 免费在线成人| 国产99精品一区| 日韩午夜视频在线| 久久午夜精品| 欧美在线观看天堂一区二区三区| 最新日韩欧美| 久久精品国产亚洲夜色av网站| 国产精品调教视频| 偷拍亚洲精品| 亚洲精品观看| 蜜臀a∨国产成人精品| 蜜臀av免费一区二区三区| 香蕉视频亚洲一级| www.51av欧美视频| 免费在线成人| 国产精品s色| 国产日韩免费| 亚洲精品在线a| 亚洲欧洲免费| 日韩一区欧美二区| 日本大胆欧美人术艺术动态| 欧美日韩少妇| 久久要要av| 群体交乱之放荡娇妻一区二区| 麻豆视频在线观看免费网站黄 | 国产中文欧美日韩在线| 国产精品三p一区二区| 日本不卡视频在线| 日韩精品1区2区3区| 日本天堂一区| 欧美日韩一区二区三区不卡视频| 日韩动漫一区| 国产麻豆一区二区三区精品视频| 国产亚洲电影| 国产精品亚洲片在线播放| 国产精品一区二区三区美女 | 免费一级欧美片在线观看网站 | 国产精品一线| 久久字幕精品一区| 精品视频网站| 麻豆成全视频免费观看在线看| 色综合狠狠操| 深夜视频一区二区| 米奇777超碰欧美日韩亚洲| 好看的av在线不卡观看| 日韩制服丝袜av| 日韩精品欧美大片| 国产精品99久久免费| 日韩av自拍| 中文字幕系列一区| 美女少妇全过程你懂的久久| 亚洲自啪免费| 亚洲aa在线| 国产精品视频一区二区三区综合 | 另类综合日韩欧美亚洲| 91一区二区三区四区| 久久久精品网| 亚洲经典在线| 日韩欧美另类中文字幕| 国产精品白丝av嫩草影院| 国产毛片一区二区三区 | 国产一区二区三区天码| 日韩欧美少妇| 蜜乳av另类精品一区二区| 日韩av不卡在线观看| 久久国产精品免费一区二区三区| 麻豆国产精品视频| 成人美女视频| 亚洲大全视频| 亚洲精品一区二区在线播放∴| 国产精品视频一区二区三区| 91亚洲国产| 国产婷婷精品| 日本视频一区二区| 成人精品国产亚洲| 妖精视频成人观看www| 日韩av网站免费在线| 成人影视亚洲图片在线| 蜜桃国内精品久久久久软件9| 午夜性色一区二区三区免费视频| 里番精品3d一二三区| 亚洲手机在线| 欧美日韩va| 99久久亚洲精品| 日本午夜精品视频在线观看| 麻豆网站免费在线观看| 石原莉奈在线亚洲二区| 欧美极品中文字幕| 99精品视频在线| 日韩精品国产精品| 欧美日韩精品免费观看视欧美高清免费大片 | 亚洲v在线看| 日韩va亚洲va欧美va久久| 欧美羞羞视频| 日本精品久久| 欧美色图一区| 国产精品22p| 久久久久99| 国产精品一区二区av交换 | 影音国产精品| 91一区二区| 日韩精品久久理论片| 今天的高清视频免费播放成人|