现在看来TabActivity已被弃用,我们需要使用Fragments。
我尝试使用标准的Activity但无法调用getTabHost。
所以看来我必须使用Fragments。但我有点困惑这是如何工作的。
我知道片段不是活动,因此它们不在清单文件中?
所以我认为我不能对片段做startActivity?
有没有人知道解释tabHost和Fragments的一个好例子,我发现的所有示例和教程都只使用了tabactivity。
提前致谢
答案 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等。它们都已弃用或将弃用。你应该问为什么?
回答你的问题 - 最好使用自定义和强大的视图元素,然后是主动作视图(Activity)的几个实现。当你看到元素的动作规范时,这个原因更加明显。在视图初始化中不需要进行活动。