我将创建一个旨在使用Tabhost
的应用程序,但据我所知,它已被弃用。所以我的问题是我应该使用Tabhost
还是如何替换它...使用按钮代替每个xml中声明的按钮或任何其他建议?
答案 0 :(得分:11)
TabHost
,AFAIK,在Android 4.0上运行良好。 话虽如此,我建议考虑切换到操作栏中的标签,使用ActionBarSherlock向后兼容Android 2.1。
<强>更新强>
此外,{@ 1}}不被弃用。不推荐使用TabHost
。您仍然可以使用TabActivity
,并为您的标签添加视图。或者,使用:
TabHost
带有标签指示符,例如ViewPager
PagerTabStrip
,对于使用片段标签的FragmentTabHost
操作栏也有标签支持,但从“L”开发人员预览版开始不推荐使用。
答案 1 :(得分:3)
根据Android API等级-18,不建议使用ActionBarSherlock,而是推出ActionBarCompat ..最好使用ActionBarCompat。
谢谢。
答案 2 :(得分:0)
在API级别30中已弃用。您可以使用材料TabHost
TabLayout
和ViewPager
代替 :TabHost
<com.google.android.material.tabs.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="center"
app:tabIndicatorColor="@color/colorPrimary"
app:tabIndicatorHeight="2dp"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/colorPrimary"
app:tabTextAppearance="@style/MapTabTextStyle"
app:tabTextColor="@color/black" />
代码:
tablayout.addTab(tablayout.newTab().setText("Tab1"))
tablayout.addTab(tablayout.newTab().setText("Tab2"))
tablayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabReselected(tab: TabLayout.Tab?) {
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
}
override fun onTabSelected(tab: TabLayout.Tab?) {
// do something
}
})