【问题标题】:Tabs which switch between views in Android在 Android 中切换视图的选项卡
【发布时间】:2014-02-18 10:10:29
【问题描述】:

我想做的事情应该很容易,但我发现自己陷入了困境。我需要在一个 android 活动中有 3 个选项卡。每个选项卡都应该在活动而不是视图之间切换。我已经使用 tabActivity 实现了这一点,尽管它已被弃用,但它完成了这项工作。但后来我意识到 YoutubePlayerView 无法像 link 中所示那样初始化。此外,我不希望我的标签出现在我的 ActionBar 上。所以我的问题是如何在一个活动中拥有可以在活动之间切换的选项卡?

【问题讨论】:

  • 您可以使用片段代替活动。
  • 如果我使用片段,我不应该向 tabhost 活动声明每个片段的布局吗?

标签: android tabs android-ui


【解决方案1】:

TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);

TabHost.TabSpec tabSpec; View tabView;


tabSpec = tabHost.newTabSpec("tab1");       
    tabView = createTabView(tabHost.getContext(), "Tab 1");
    tabSpec.setIndicator(tabView);
    tabSpec.setContent(new Intent(this, YourActivity1.class));
    tabHost.addTab(tabSpec);

    tabSpec = tabHost.newTabSpec("tab2");
    tabView = createTabView(tabHost.getContext(), "Tab 2");
    tabSpec.setIndicator(tabView);
    tabSpec.setContent(new Intent(this, YourActivity2.class));
    tabHost.addTab(tabSpec);

    tabSpec = tabHost.newTabSpec("tab3");
    tabView = createTabView(tabHost.getContext(), "Tab 3");
    tabSpec.setIndicator(tabView);
    tabSpec.setContent(new Intent(this, YourActivity3.class));
    tabHost.addTab(tabSpec);

当您第一次点击一个标签时,相应的 Activity 将启动,并且即使您切换到另一个标签也会继续运行(即不会暂停)。如果您切换回上一个选项卡,则不会调用其onResume

【讨论】:

  • @libathos 是的,它在 TabActivity 中
  • 我是这样实现的,如果这样实现,我无法初始化YoutubePlayerView
  • @libathos 我猜问题出在那个 PlayerView 中,而不是在 Tabs 中:) 活动应该成功启动
  • 问题出在那个 PlayerView 因为 TabActivity 已被弃用
  • 我真的不认为这是因为 TabActivity 被弃用了,但如果你愿意,你可以尝试使用FragmentActivity,就像上面用户建议的那样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
相关资源
最近更新 更多