【发布时间】:2011-12-24 02:44:53
【问题描述】:
是否可以在平板电脑的操作栏选项卡和手机的 ViewPager 中使用 Fragment?手机似乎使用了支持库,并且与操作栏中的 TabListener 不兼容。让两者使用相同的 Fragment 有什么诀窍吗?
到目前为止,我看到的唯一可能的解决方法是this。
谢谢
【问题讨论】:
标签: android tabs fragment android-actionbar android-viewpager
是否可以在平板电脑的操作栏选项卡和手机的 ViewPager 中使用 Fragment?手机似乎使用了支持库,并且与操作栏中的 TabListener 不兼容。让两者使用相同的 Fragment 有什么诀窍吗?
到目前为止,我看到的唯一可能的解决方法是this。
谢谢
【问题讨论】:
标签: android tabs fragment android-actionbar android-viewpager
当然,请查看兼容性库源中的 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);
【讨论】:
http://developer.android.com/training/backward-compatible-ui/index.html
这是将兼容性库中的 Fragment 与 ActionBar.Tab 和 TabListener 一起使用的好方法。
【讨论】:
这是来自 Nikolay Elenkov 答案的 TabsPagerAdapter https://wwwjdic.googlecode.com/svn-history/r684/branches/2.0/wwwjdic/src/org/nick/wwwjdic/TabsPagerAdapter.java 的示例实现。
【讨论】:
这个想法是使用android-support-v13.jar。该文件包括原生 Fragment 的 FragmentPagerAdapter 以及 ViewPager。
【讨论】: