ActionBar的三种导航模式
2014-09-17 09:53
92 查看
原文地址:http://blog.csdn.net/u010212533/article/details/39338337
大家知道,在Android3.0以后,google提供ActionBar这项功能,有了这个以后呢,对于开发者来说可以解决很多的问题。
现在我就把我自己的对ActionBar的三种导航模式理解写下来,方便以后查看:
第一种导航模式:
标准导航模式:这个模式比较简单。
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);//设置导航模式,(标准模式)
第二种导航模式:
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置导航模式,(表格模式:横屏换行显示导航,竖屏同行显示导航) // 设置ActinBar添加Tab选项标签 actionBar.addTab(actionBar.newTab().setText("TAB1").setTabListener(new MyTabListener<FragmentPage1>(this, FragmentPage1.class))); actionBar.addTab(actionBar.newTab().setText("TAB2").setTabListener(new MyTabListener<FragmentPage2>(this, FragmentPage2.class))); actionBar.addTab(actionBar.newTab().setText("TAB3").setTabListener(new MyTabListener<FragmentPage2>(this, FragmentPage2.class))); actionBar.addTab(actionBar.newTab().setText("TAB4").setTabListener(new MyTabListener<FragmentPage2>(this, FragmentPage2.class))); actionBar.addTab(actionBar.newTab().setText("TAB5").setTabListener(new MyTabListener<FragmentPage2>(this, FragmentPage2.class)));
MyTabListenerMyTabListener代码:
public class MyTabListener<T extends Fragment> implements TabListener { private Fragment fragment; private final Activity mActivity; private final Class<T> mClass; public MyTabListener(Activity activity, Class<T> clz) { mActivity = activity; mClass = clz; } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { if (fragment == null) { fragment = Fragment.instantiate(mActivity, mClass.getName()); ft.add(android.R.id.content, fragment, null); } ft.attach(fragment); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { if (fragment != null) { ft.detach(fragment); } } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } }
第三种导航模式:
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);//设置导航模式,(用一个下拉的list导航) actionBar.setListNavigationCallbacks(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, strs), new OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { if (itemPosition == 0) { FragmentPage1 fragmentPage1 = new FragmentPage1(); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.container, fragmentPage1).commit(); } else { FragmentPage2 fragmentPage2 = new FragmentPage2(); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.container, fragmentPage2).commit(); } return false; } });
相关文章推荐
- 三种内存分配模式
- LVS 三种工作模式的优缺点比较
- 图文并茂讲解VMware三种网络模式
- 脚本安需导入(装载)的三种模式的对比
- 非常不错的三种简洁的Tab导航(网页选项卡)简析
- 脚本安需导入(装载)的三种模式的对比
- IT项目监理的三种模式比较
- 【转载】胖客户端(C/S模式) 、瘦客户端(B/S模式) 和智能客户端(SC/S模式)三种模式的比较
- 推荐三种简洁的Tab导航(网页选项卡)简析
- IT项目监理的三种模式比较
- 浅议DAS、NAS、SAN三种模式
- 文本分析的三种典型设计模式
- 文本分析的三种典型设计模式
- vi文本编辑器有三种工作模式
- 80386的三种模式比较
- (转)走近VMWare的三种工作模式
- 交换机三种端口模式
- 数据库的三种模式结构
- 城域网构建三种模式
- 三种简洁的Tab导航简析