Android如何更换已弃用的tabhost?

时间:2012-04-24 11:52:46

标签: android android-tabhost

我将创建一个旨在使用Tabhost的应用程序,但据我所知,它已被弃用。所以我的问题是我应该使用Tabhost还是如何替换它...使用按钮代替每个xml中声明的按钮或任何其他建议?

3 个答案:

答案 0 :(得分:11)

Android中的“弃用”意味着“我们认为您应该调查一个更好的解决方案”。 “弃用”很少意味着“它无法使用”。 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)

TabHost 在API级别30中已弃用。您可以使用材料TabLayoutViewPager代替 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
        }

    })