7

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

4

3 回答 3

11

Android 中的“已弃用”表示“我们认为您应该调查更好的解决方案”。“已弃用”很少意味着“它无法使用”。TabHost,AFAIK,在 Android 4.0 上运行良好。

话虽如此,我建议考虑切换到操作栏中的选项卡,使用ActionBarSherlock为您提供对 Android 2.1 的向后兼容性。

更新

此外,TabHost不推荐使用。TabActivity已弃用。您仍然可以将TabHost, 与选项卡的视图一起使用。或者,使用:

  • ViewPager带有标签式指示器,例如PagerTabStrip
  • FragmentTabHost, 对于TabHost使用片段作为选项卡的

操作栏也支持选项卡,但从“L”开发者预览版开始已弃用。

于 2012-04-24T12:11:14.727 回答
3

根据 Android API level-18,不推荐使用 ActionBarSherlock,他们已经引入了 ActionBarCompat .. 最好使用ActionBarCompat

谢谢你。

于 2013-08-08T07:49:50.800 回答
1

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
        }

    })
于 2020-09-17T22:21:22.927 回答