• 【转】 Pro Android学习笔记(五一):ActionBar(4):标准和Tab模式


    之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示。

    对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fragment的使用。我们在之前实现的标准Action Bar的基础上添加导航用的tab,代码如下:

    public class TabbedActionBarDemo extends SearchTestCase3 implements ActionBar.TabListener{
        @Override 
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState); 
            workWithTabbedActionBar(); 
        } 
        private void workWithTabbedActionBar(){ 
            ActionBar bar = getActionBar(); 
            bar.setTitle("Tabbed action bar"); //可以修改在AndroidManifest.xml中设定的action bar的title
            bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //缺省为ActionBar.NAVIGATION_MODE_STANDARD,即标准模式。在标准模式下,是不呈现Tab出来的。 

            ActionTab.Tab tab1 = bar.newTab()
            tab1.setText("Tab1"); 
            tab1.setTabListener(this);  //如果我们忘了添加setTabListener(),在运行时会异常,设置null也不行。
            bar.addTab(tab1); 

           bar.addTab(bar.newTab() 
                               .setText("Tab2")  
                               .setTabListener(this)); 

        } 

        @Override //ActionBar.TabListener接口,在已选择的基础上,再次选择的回调函数
        public void onTabReselected(Tab tab, FragmentTransaction ft) 
            showInfo(tab.getText() + " onTabReselected() is called");       
        } 

        @Override //ActionBar.TabListener接口,选择tab的回调函数。目前为Tab1,当用户选择tab2时,先触发tab1的onTabUnselected(),再触发tab2的onTableSelected()
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            showInfo(tab.getText() + " onTabSelected() is called");      
        } 

        @Override //ActionBar.TabListener接口,不再选择(选择其他)的回调函数
        public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
            showInfo(tab.getText() + " onTabUnselected() is called");
        }  
            
    }

    ActionBar.Tab很适合用于fragment,在不同的fragment中切换,此时,具体实现ActionBar.TabListener的可能就是Fragment的继承类。

    本博文涉及的例子代码,可以在Pro Android学习:ActionBar小例子中下载。

    相关链接: 我的Android开发相关文章

  • 相关阅读:
    ContactManager示例解析
    CubeLiveWallpaper例子解析
    BluetoothChat例子解析
    推荐一个模板引擎 templateengine
    jQuery plugin: Autocomplete
    乐从网站建设、域名、主机-www.lecong.me-www.lecong.mobi
    C#操作注册表
    .NET模板引擎
    [转]模版引擎AderTemplate源代码分析笔记
    windows服务器文件同步,网站同步镜像
  • 原文地址:https://www.cnblogs.com/blongfree/p/5047999.html
Copyright © 2020-2023  润新知