【问题标题】:Fragment in Actionbar Tab and ViewPagerActionbar 选项卡和 ViewPager 中的片段
【发布时间】:2011-12-24 02:44:53
【问题描述】:

是否可以在平板电脑的操作栏选项卡和手机的 ViewPager 中使用 Fragment?手机似乎使用了支持库,并且与操作栏中的 TabListener 不兼容。让两者使用相同的 Fragment 有什么诀窍吗?

到目前为止,我看到的唯一可能的解决方法是this

谢谢

【问题讨论】:

    标签: android tabs fragment android-actionbar android-viewpager


    【解决方案1】:

    当然,请查看兼容性库源中的 ActionBarTabsPager 示例。您需要在适配器中实现这两个接口来处理选项卡切换和分页。像这样的:

    public class TabsPagerAdapter extends FragmentPagerAdapter implements
            ViewPager.OnPageChangeListener, ActionBar.TabListener {
            // implement both
    }
    

    您需要添加这样的选项卡(使用支持/兼容性库):

    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    viewPager = (ViewPager) findViewById(R.id.content);
    tabsAdapter = new TabsPagerAdapter(this, getSupportActionBar(),
                    viewPager);
    ActionBar.Tab tab = getSupportActionBar().newTab();
    MyFragment f = new MyFragment();
    tabsAdapter.addTab(tab, f);
    

    【讨论】:

    • 这很好,但选项卡不在平板电脑的操作栏上。
    • 当然,您需要使用 ActionBar API 来添加选项卡。见修改后的帖子。这是一个真实的项目,所以我很确定它可以工作:)。
    • -桑!大白!。自从您的第一个回答让我印象深刻……当我今天阅读您的第二个回答时,我的平板电脑通知我,我有一个已安装应用程序的升级。瞧……WWWJDIC。 :-) ...而且 TabPager 在那里也能很好地工作!我也安装了汉字识别器。感谢您的帮助和您的应用程序!
    • getSupportActionBar() 在 ActionBarSherlock 库中,不在兼容性库中...
    • 任何寻找完整解决方案的人都应该试试这个(你应该有 ADT v20 及更高版本) - 菜单 > 项目 > 选择 Android 应用程序项目 + 填充项目属性并选择 min-sdk to API 14 > 单击下一步 > [可选] 创建启动器图标 > 单击下一步 > 选中“创建活动”并选择“BlankActivity”> 单击下一步 > 选择导航类型为“选项卡 + 滑动”> 单击完成。完成,您有一个使用 tab + viewpager 的工作示例
    【解决方案2】:

    http://developer.android.com/training/backward-compatible-ui/index.html

    这是将兼容性库中的 Fragment 与 ActionBar.Tab 和 TabListener 一起使用的好方法。

    【讨论】:

      【解决方案3】:

      这是来自 Nikolay Elenkov 答案的 TabsPagerAdapter https://wwwjdic.googlecode.com/svn-history/r684/branches/2.0/wwwjdic/src/org/nick/wwwjdic/TabsPagerAdapter.java 的示例实现。

      【讨论】:

        【解决方案4】:

        这个想法是使用android-support-v13.jar。该文件包括原生 Fragment 的 FragmentPagerAdapter 以及 ViewPager。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-06
          • 2012-04-16
          相关资源
          最近更新 更多