【问题标题】:What's the new way to use different fragments for different tabs?对不同标签使用不同片段的新方法是什么?
【发布时间】:2017-04-05 01:25:40
【问题描述】:

我一直在寻找不同的解决方案来解决这个问题:如何在 Android 中使用 ActionBar 在不同的选项卡中显示不同的内容?

我找到了一种方法:使用片段作为 XML,然后将它们作为不同选项卡的布局。但是发布的大多数代码要么已过时且已弃用,要么非常复杂。

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sample_main);

    // Set the Action Bar to use tabs for navigation
    ActionBar ab = getSupportActionBar();
    ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Add three tabs to the Action Bar for display
    ab.addTab(ab.newTab().setText("Tab 1").setTabListener(this));
    ab.addTab(ab.newTab().setText("Tab 2").setTabListener(this));
    ab.addTab(ab.newTab().setText("Tab 3").setTabListener(this));
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate menu from menu resource (res/menu/main)
    getMenuInflater().inflate(R.menu.main, menu);

    return super.onCreateOptionsMenu(menu);
}

// Implemented from ActionBar.TabListener
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    // This is called when a tab is selected.
}

// Implemented from ActionBar.TabListener
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    // This is called when a previously selected tab is unselected.
}

// Implemented from ActionBar.TabListener
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    // This is called when a previously selected tab is selected again.
}

这是来自 Android 的示例,提供了 ActionBar 及其自身功能的示例。这将是一个好的开始,但它已被弃用。大多数都是这个或其他已弃用的东西。所以我想知道,为不同的标签使用不同的片段的新方法是什么?

【问题讨论】:

    标签: android android-fragments tabs


    【解决方案1】:

    # 尝试按照以下步骤操作:

    1. 使用ToolbarTabLayoutViewPager 设计您的activity_main.xml
    2. 设计布局 XML 是您要为每个 Tab 内容显示的片段。
    3. 使用FragmentPagerAdapterViewPager 上填充Fragments
    4. 使用ViewPager.setAdapter(FragmentPagerAdapter)FragmentPagerAdapter 设置为ViewPager
    5. 使用TabLayout.setupWithViewPager(ViewPager) 使ViewPager 能够使用TabLayout 功能。

    这是一个完整的tutorial

    # 如果您使用的是 AndroidStudio,那么您可以使用默认的 TabbedActivity 模板轻松创建它。请按照以下步骤操作:

    1. 打开AndroidStudio
    2. 文件 > 新建 > 新建项目
    3. 给项目名称>选择minimum SDK版本然后按Next
    4. 选择TabbedActivity,然后按Next
    5. 选择Navigation Style: "Action Bar Tabs(with ViewPager) > Finish

    希望对你有帮助~

    【讨论】:

    • @Sami Altamimi 感谢您接受我的回答。如果我的回答似乎有用,请投反对票。在此先感谢...
    • @Sami Altamimi 如果我的回答似乎有用,请投反对票。在此先感谢:)
    【解决方案2】:

    一个很好的例子可以在这里找到:https://gist.github.com/talhahasanzia/84e44e831f9c5f9b14835a253f3614dd

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 2020-08-14
      • 2014-08-23
      • 1970-01-01
      • 2020-11-26
      相关资源
      最近更新 更多