亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

Android自定義view實現標簽欄功能(只支持固定兩個標簽)

瀏覽:74日期:2022-09-23 17:57:26

實現效果圖

Android自定義view實現標簽欄功能(只支持固定兩個標簽)

主要代碼

完整源代碼

class TabView(context: Context, attributeSet: AttributeSet?) : LinearLayout(context, attributeSet) { private lateinit var firstTab: View private lateinit var secondTab: View private val firstTabIndex = 0 private val secondTabIndex = 1 private var selectedTab = firstTabIndex private val textSize = 20f private val bottomSplitColor = '#FA871E' private val centerSplitColor = '#666666' private val bottomSplitWidth = 50 private val bottomSplitHeight = 4 private val centerSplitWidth = 1 private val centerSplitHeight = 40 private lateinit var mOnSwitchListener: OnSwitchListener fun initTabs( firstTabText: String, secondTabText: String, selectedIndex: Int, onSwitchListener: OnSwitchListener ) { mOnSwitchListener = onSwitchListener setOrientation() firstTab = addTab(firstTabText) addCenterSplit() secondTab = addTab(secondTabText) selectTab(selectedIndex) setOnClickListener { switchTab() } } interface OnSwitchListener { fun onSwitched(selectedIndex: Int) } private fun selectTab(tabIndex: Int) { if (tabIndex == firstTabIndex) { firstTab.visibility = View.VISIBLE secondTab.visibility = View.INVISIBLE } else { firstTab.visibility = View.INVISIBLE secondTab.visibility = View.VISIBLE } selectedTab = tabIndex } private fun switchTab() { if (selectedTab == firstTabIndex) { selectTab(secondTabIndex) } else { selectTab(firstTabIndex) } mOnSwitchListener.onSwitched(selectedTab) } private fun setOrientation() { orientation = HORIZONTAL } private fun getBottomSplitView(): View { val view = View(context) view.setBackgroundColor(Color.parseColor(bottomSplitColor)) return view } private fun getBottomSplitLayoutParams(): LayoutParams { val layoutParams = LayoutParams(bottomSplitWidth, bottomSplitHeight) layoutParams.setMargins(3, 3, 3, 3) layoutParams.gravity = Gravity.CENTER_HORIZONTAL return layoutParams } private fun addCenterSplit() { val view = View(context) view.setBackgroundColor(Color.parseColor(centerSplitColor)) addView(view, getCenterSplitLayoutParams()) } private fun getCenterSplitLayoutParams(): LayoutParams { val layoutParams = LayoutParams(centerSplitWidth, centerSplitHeight) layoutParams.setMargins(3, 0, 3, 0) layoutParams.gravity = Gravity.CENTER_VERTICAL return layoutParams } private fun addTab(text: String): View { var linearLayout = LinearLayout(context) linearLayout.orientation = VERTICAL val textView = getTextView(text) linearLayout.addView( textView, LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) ) val splitView = getBottomSplitView() linearLayout.addView(splitView, getBottomSplitLayoutParams()) addView(linearLayout, LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)) return splitView } private fun getTextView(text: String): TextView { val textView = TextView(context) textView.text = text textView.setPadding(10, 10, 10, 10) textView.textSize = textSize return textView }}

https://gitee.com/cxyzy1/custTabView

總結

到此這篇關于Android自定義view實現標簽欄功能(只支持固定兩個標簽)的文章就介紹到這了,更多相關android自定義view標簽欄內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 99久久99久久久99精品齐 | 国产男女猛烈无遮档免费视频网站 | 久久99精品热在线观看15 | 久久观看午夜精品 | 久久亚洲精品一区成人 | 怡红院成人在线 | 一 级 黄 色 大片 | 国产美女视频网站 | 日本黄色大片在线播放视频免费观看 | 自拍偷自拍亚洲精品10p | 乱淫67194| www.操操操| 日韩 欧美 自拍 在线 视频 | 精品国产高清在线看国产 | 91福利精品老师国产自产在线 | 波多野结衣一级视频 | 精品三级在线观看 | 国产精品一区在线播放 | 日韩欧美在线观看视频 | 美女扒开腿被男人猛视频 | 成年男女拍拍拍免费视频 | 久久色精品 | 国产高清美女一级a毛片久久 | 国产成人综合亚洲欧美在 | 国产亚洲美女精品久久 | 美国毛片免费看 | 国产视频高清在线观看 | 免费中文字幕在线 | 日韩欧美印度一级毛片 | 国产91在线精品 | 粉嫩jk制服美女啪啪 | 国产精品国产三级国产在线观看 | 日本一线一区二区三区免费视频 | 亚洲www.| 久久精品久久久 | 亚洲三级视频 | 99久久综合给久久精品 | 国产成人精品视频 | 亚洲欧美日韩中文字幕在线一区 | 成人亚洲精品777777 | 一级毛片不收费 |