我使用谷歌的新工具来启动具有三个标签之间切换的能力的应用程序。
这是伟大的,但缺乏对老年人设备的支持。
1.我加ABS的支持库应用程序。
2.我改变public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
到public class MainActivity extends SherlockFragmentActivity implements ActionBar.TabListener {
3.我还是留下了一吨的错误,我甚至不知道这是否会在较旧的设备正常工作。 有没有人对如何实现滑动标签,与2.x和高达兼容任何提示?
更新:
我卡上alextsc的回答的第6步
完全相同的过程中为我工作。 我删除所有的进口,然后压制CTRL + SHIFT + o及选择的兼容性类。 它的工作absoulutely罚款。 看到帖子在这里 。
我想这一次向导,我想我完全扔掉了生成的代码,当我实现了这个确切的图案ActionBarSherlock,所以我建议你先从头开始正常的“空白”活动。 这里是一个小的一步一步的指导。 不是所有的步骤都完全说明,但你应该找到足够的文档以关键字开始。
1)添加ActionBarSherlock到您的项目(明显)
2)创建一个扩展一个新的活动SherlockFragmentActivity
,并设置适当的ABS主题
你应该在这一点的动作栏空白的活动。
3)改变的布局,并且包括填充视口中的ViewPager
4)撰写您的片段(或占位符现在)和适配器的ViewPager,这些丝一起
有很多的教程在那里,解释一切neccessary这里,例如这个博客帖子 。
这应该给你一个操作栏和滑动式布局的活动。 现在,您可以您的片段之间滑动。
5)添加动作栏选项卡并附加一个空白选项卡监听器,它们
例:
actionBar = getSupportActionBar();
sampleTab = actionBar.newTab()
.setText(R.string.title)
.setTag(TABTAG_SAMPLE)
.setTabListener(tabListener);
actionBar.addTab(sampleTab);
请确保您给每个标签页的个人标签(字符串常量是罚款)。 这将被用于识别被点击在第二哪个标签。 另外,还要确保您保持创建的选项卡实例的类变量。 你需要它们以后。 重复每个选项卡上面的片段。 您可以使用正常的TabListener,但我使用电子书籍的SimpleTabListener,因为你只需要一个方法后重写。
现在,你应该有操作栏上,滑动式片段和(非功能性)选项卡的活动。
6)填充的标签听者和将其连接到viewpager
private SimpleTabListener tabListener = new SimpleTabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
final String tag = (String) tab.getTag();
if (TABTAG_SAMPLE.equals(tag)) {
viewPager.setCurrentItem(INDEX_SAMPLE);
} else if (TABTAG_SECONDTAB.equals(tag)) {
viewPager.setCurrentItem(INDEX_SECONDFRAGMENT);
}
}
};
这应该是简单的。 你侦听选项卡中选择事件,经由检查所保存的标签被选择的选项卡,并调用viewpagers setCurrentItem()
与和特定标签相关联的片段的索引方法。
现在,你应该能够通过选择一个标签片段以及刷卡左右。 你会注意到,刷到一定的片段不会因此同步的标签,他们不会得到适当选择呢。
7)安装一个OnPageChangeListener您ViewPager并选择相应的选项卡
同样,你可以在这里使用一个SimpleOnPageChangeListener以及替代接口。 简短的例子:
private SimpleOnPageChangeListener onPageChangeListener
= new SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
switch (position) {
case INDEX_SAMPLE:
actionBar.selectTab(sampleTab);
break;
case INDEX_SECONDFRAGMENT:
actionBar.selectTab(secondTab);
break;
}
};
};
这也应该是不言自明的。 你看的刷卡动作改变显示的片段,检查它的指数,然后选择相应的选项卡。 你看这里为什么你不得不保持标签的实例从各地第5步,你需要他们选择一个标签。
一切都应该现在的工作。
我建议考虑看看ViewPagerIndicator它与ActionBarSherlock和兼容性库,我现在有使用此为刷上2.2及更高版本标签的应用程序。
我已经实现用动作条福尔摩斯非常复杂的应用。 它适用于2.2精细ICS的我已经测试设备。 我还使用了标签,一切工作正常。 我后来改成了导航列表中,因为应该有6个标签。 尝试附带动作条开始与演示。 这种错误可能是一些类路径的问题。 您需要添加夏洛克作为LIB项目和支持库必须同时包含在福尔摩斯的lib项目和你的项目。 同时检查如果二者均支持库必须具有相同的版本。
所以这是我ViewPagerIndicator评论我不能添加评论。 我习惯了,但是当我开始使用装载机加载有时会出现新的数据出来了奇怪的问题,数据和fragmentadapter,方向改变......但使用卡口与actionbarsherlock ViewPagerIndicator是没有必要的。