Android学习笔记(三)--ActionBar Tab 的使用。

1.    ActionBar可以现实选项卡供用户切换浏览该Activity中不同的Fragment

注:添加导航选项标签,必须给调用ActionBar的setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

2.    每个标签都可以是一个图标或文本标题

要使用选项标签在Fragmengt之间切换,必须在每次选择一个选项标签时执行一个Fragment事务。

 添加选项标签的基本过程如下:

         i.         实现ActionBar.TabListener接口。这个接口中回调方法会响应选项标签上的用户事件,以便你能够切换Fragment对象;

        ii.           对于每个要添加的选项标签,都要实例化一个ActionBar.Tab对象,并且调用setTabListener()方法设置ActionBar.Tab对象的事件监听器。还可以用setText()或setIcon()方法来设置选项标签的标题或图标。

       iii.          通过调用addTab()方法,把每个选项标签添加到操作栏。

 

 1     protected void onCreate(Bundle savedInstanceState) {
 2 
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.manage_activity);
 5         
 6         // 得到Activity的ActionBar
 7         ActionBar actionBar = getSupportActionBar();
 8         // 设置AcitonBar的操作模型
 9         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
10         // 将Activity的头部去掉
11         actionBar.setDisplayShowTitleEnabled(true);
12         actionBar.setTitle("微画廊管理系统");
13         // 生成Tab
14         Tab addnew = actionBar.newTab().setText("新增作品");
15         Tab pplist = actionBar.newTab().setText("作品列表");
16         Tab zclist = actionBar.newTab().setText("专场列表");
17         // 为每个Tab添加Listener
18         MyTabListener addnewListener = new MyTabListener(new AddNewFragment());
19         addnew.setTabListener(addnewListener);
20         MyTabListener pplistListener = new MyTabListener(new WebFragment(PPLIST));
21         pplist.setTabListener(pplistListener);
22         MyTabListener zclisTabListener=new MyTabListener(new WebFragment(ZCLIST));
23         zclist.setTabListener(zclisTabListener);
24         // 将Tab加入ActionBar中
25         actionBar.addTab(addnew);
26         actionBar.addTab(pplist);
27         actionBar.addTab(zclist);
28     }

 

 在实现ActionBar.TabListener接口的类中,必须重写onTabSelected()、onTabUnselected()、onTabReselected()方法来关联Fragment,在这三个方法中实现Tab标签被选中、非选中、重新选中时是所需处理的事务操作。

 

public class MyTabListener implements TabListener {
	 private Fragment fragment;
	 public MyTabListener(Fragment fragment)
     {
         this.fragment = fragment;
     }
	public void onTabSelected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
		  ft.replace(R.id.manage_layout, fragment, null);
	}
	public void onTabUnselected(Tab tab, android.support.v4.app.FragmentTransaction ft) {
		ft.remove(fragment);
	}

	@Override
	public void onTabReselected(Tab arg0,
			android.support.v4.app.FragmentTransaction arg1) {
		
	}
}

  

posted @ 2014-07-13 15:37  birdhack  阅读(2516)  评论(0编辑  收藏  举报