Android:TabActivity已弃用,应使用Fragments吗?

9

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

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

因此,似乎我必须使用Fragments。但是我有点困惑这该如何实现。

我知道Fragments不是Activities,所以它们不在清单文件中?

那么我推测我不能对一个Fragment使用startActivity?

是否有人知道一个好的例子来解释tabHost和Fragments,所有我找到的例子和教程都只使用tabactivity。

提前致谢。

5个回答

1
也许你可以使用TabLayout代替。
现在,最好通过在顶部使用自定义的“选项卡指示器”来利用ViewPager来实现选项卡。Google在Android“M”的支持设计库发布中包括了新的TabLayout。
访问使用TabLayout的完整教程:Google Play风格的选项卡使用TabLayout。

0

今天 Android 为那些人提供了不错的教程。从 使用选项卡创建滑动视图 开始。

这里是一个创建选项卡的小快照。

@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));
    }
}

0

首先 - 您可以通过类似于 context.startActivity(...) 的方式从片段启动 startActivity。

其次,要了解如何使用片段创建选项卡,请在Android Studio上创建一个示例项目,并在提示您选择现有模板时选择具有选项卡的模板。这样,您将看到标准代码。


0

0

我认为您在使用选择性实现方面存在问题。Android SDK包含许多View的变种,如ActivityList、TabActivity、ActionBarActivity等,它们都被弃用或将被弃用。你应该问为什么?

  • 看一下新材料中Tabs和List的不同示例。应用程序包含主标题,如ToolbarLayout,在这个布局中包含了Toolbar的不同状态,你可以添加TabLayout和其他很酷的东西。

所以回答你的问题——最好使用自定义和强大的视图元素,而不是几个主要操作视图(Activity)的实现。这个原因在查看元素的操作规范时仍然更明显。Activity不需要在视图初始化中占据位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接