zoukankan      html  css  js  c++  java
  • 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) {
    		
    	}
    }
    

      

  • 相关阅读:
    bzoj3159: 决战
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) C
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) B
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) A
    loj 6401 字符串
    BZOJ5194 雪地靴
    BZOJ 4709 柠檬
    BZOJ 3343 魔法
    [8月16日绍兴]试剂
    设备塔
  • 原文地址:https://www.cnblogs.com/birdhack/p/3841165.html
Copyright © 2011-2022 走看看