安卓使用TabLayout制作顶部导航栏(标签栏)(非Fragm
2021-06-18 本文已影响0人
蓝不蓝编程
效果图

主要代码
- 主界面
- MainActivity.kt
class MainActivity : AppCompatActivity() {
private val pageTitles = arrayOf("Page 1", "Page 2", "Page 3", "Page 4", "Page 5")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewPager.adapter = object : PagerAdapter() {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val inflater = LayoutInflater.from(this@MainActivity)
val rootView = inflater.inflate(R.layout.view_page, container, false) as ViewGroup
val textView = rootView.findViewById<TextView>(R.id.textView)
textView.text = getPageTitle(position)
container.addView(rootView)
return rootView
}
override fun getItemPosition(obj: Any): Int {
return POSITION_NONE
}
override fun destroyItem(container: ViewGroup, position: Int, obj: Any) {
container.removeView(obj as View)
}
override fun getPageTitle(position: Int): CharSequence? {
return pageTitles[position]
}
override fun getCount(): Int {
return pageTitles.size
}
override fun isViewFromObject(view: View, obj: Any): Boolean {
return view === obj
}
}
}
}
- 布局文件:activity_main.xml
<androidx.viewpager.widget.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabBackground="@android:color/white"
app:tabIndicatorColor="@android:color/holo_red_light"
app:tabIndicatorHeight="2dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@android:color/holo_red_light"
app:tabTextColor="@android:color/darker_gray" />
</androidx.viewpager.widget.ViewPager>