Android 4.0中标签的主要设计建议之一是在适当的位置之间allow swiping。此行为使用户可以在选定选项卡的内容上水平滑动以导航到相邻选项卡,而无需直接与选项卡本身进行交互。
如何实施?
答案 0 :(得分:34)
注意:这是摘自Android Training班级 Implementing Effective Navigation 。
要实现此功能(在Android 3.0或更高版本中),您可以将ViewPager与ActionBar标签API结合使用。
观察当前页面更改后,选择相应的选项卡。您可以使用活动的onCreate()
方法中的ViewPager.OnPageChangeListener来设置此行为:
@Override
public void onCreate(Bundle savedInstanceState) {
...
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// When swiping between pages, select the
// corresponding tab.
getActionBar().setSelectedNavigationItem(position);
}
});
...
}
选择标签后,切换到ViewPager中的相应页面。为此,请在使用newTab()
方法创建标签时向您的标签添加ActionBar.TabListener:
actionBar.newTab()
...
.setTabListener(new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
}));
答案 1 :(得分:12)
如果您的目标是Android 3.0以下的API,则无法使用上面的Roman解决方案。
如果有人有兴趣,我写了一篇关于如何用ActionBarSherlock完成同样事情的blog post here。