Android:TabActivity已弃用,请使用片段?

时间:2012-09-12 06:32:41

标签: android android-layout android-tabhost android-tabactivity

现在看来TabActivity已被弃用,我们需要使用Fragments。

我尝试使用标准的Activity但无法调用getTabHost。

所以看来我必须使用Fragments。但我有点困惑这是如何工作的。

我知道片段不是活动,因此它们不在清单文件中?

所以我认为我不能对片段做startActivity?

有没有人知道解释tabHost和Fragments的一个好例子,我发现的所有示例和教程都只使用了tabactivity。

提前致谢

5 个答案:

答案 0 :(得分:1)

也许您可以使用TabLayout。

  

现在,最好通过利用ViewPager和顶部的自定义“标签指示符”来实现标签。谷歌的新TabLayout包含在Android“M”的支持设计库版本中。

访问Google Play Style Tabs using TabLayoutEdit PagePage History

中使用TabLayout的完整教程

答案 1 :(得分:0)

今天Android为这些提供了很好的教程。从Creating Swipe Views with Tabs

开始

以下是如何创建标签的小快照

@Override
public void onCreate(Bundle savedInstanceState) {
    final ActionBar actionBar = getActionBar();
    ...

    // Specify that tabs should be displayed in the action bar.
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Create a tab listener that is called when the user changes tabs.
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            // show the given tab
        }

        public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            // hide the given tab
        }

        public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
            // probably ignore this event
        }
    };

    // Add 3 tabs, specifying the tab's text and TabListener
    for (int i = 0; i < 3; i++) {
        actionBar.addTab(
                actionBar.newTab()
                        .setText("Tab " + (i + 1))
                        .setTabListener(tabListener));
    }
}

答案 2 :(得分:0)

首先 - 你可以通过context.startActivity(....);

之类的东西从你的片段中启动活动

要了解使用片段的标签,只需在Android Studio上创建一个示例项目,当它要求您选择现有模板时,请选择具有标签的模板。这样您就可以看到标准代码。

答案 3 :(得分:0)

让我们面对现实吧。碎片是未来。我们正被引导使用它们。

我发现以下教程内容非常丰富,并希望他们能够回答所有“带有碎片问题的标签”:

答案 4 :(得分:0)

我认为您使用所选实现的问题。 Android SDK包含许多View变体,例如ActivityList,TabActivity,ActionBarActivity等。它们都已弃用或将弃用。你应该问为什么?

  • 查看新材料中标签和列表的不同示例。应用程序包含主标题,如ToolbarLayout,并且在此包含不同状态的工具栏,您可以添加TabLayout和其他很酷的东西。

回答你的问题 - 最好使用自定义和强大的视图元素,然后是主动作视图(Activity)的几个实现。当你看到元素的动作规范时,这个原因更加明显。在视图初始化中不需要进行活动。