0
点赞
收藏
分享

微信扫一扫

如何使用TAB


android中有两种tab的 使用方式:
1 直接继承TabActivity,如同ListActivity一般
2 使用 TabHost控件(通常会定 制一些特殊的页面,比如:希望先显示一些基本信息,然后下面再显示几个TAB,主要用于屏幕更大的平板电脑).

第一种可以参考androidSDK自带的例子,有三种方法:使用ID,Factory,Intent。使用Intent可以延迟加载Tab的内容,并且 对于每一个TAB,可以通过addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))来决定是否缓存这个Intent。默认 是缓存,不会重新调用该Intent.

第二种需要注意几点:
1 因为使用的是findViewById()找到TabHost, 所以在增加tabs之前,先要调用setup()例如:
mTabHost = (TabHost)findViewById(R.id.tabhost);
mTabHost.setup();
mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1");

2 TabHost内必须有一个 id="@android:id/tabs"的 TabWidget 控件 同时 XML 布局中 ="@android:id/tabcontent" 必须要有, <FrameLayout android:id="@android:id/tabcontent"

这是因为TabHost中的setup方法逻辑如下:   

public void setup() { 
         mTabWidget = (TabWidget) findViewById(com.android.internal.R.id.tabs); 
         if (mTabWidget == null) { 
             throw new RuntimeException( 
                     "Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabs'"); 
         } 
 .... 
 }



3 Tab太多了,是不是显示得相当难看? 小意思,给TabWidget加一个HorizontalScrollView就搞掂了。如:<HorizontalScrollView android:layout_width="wrap_content"
      android:layout_height="wrap_content">

     <TabWidget android:id="@android:id/tabs"
      android:orientation="horizontal"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
        </TabWidget>
     </HorizontalScrollView>

.................................

setContentView(R.layout.hometabs);
       
        TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup();
        TabWidget tabWidget = tabHost.getTabWidget();
       
        tabHost.addTab(tabHost.newTabSpec("基本信息")
                .setIndicator("基本信息1", getResources().getDrawable(R.drawable.mumule))
                .setContent(R.id.view1));
       
        tabHost.addTab(tabHost.newTabSpec("客户往来记录")
                .setIndicator("客户往来记录2")
                .setContent(R.id.view2));
       
        tabHost.addTab(tabHost.newTabSpec("潜在阶段资料")
                .setIndicator("潜在阶段资料3")
                .setContent(R.id.view3));
        tabHost.addTab(tabHost.newTabSpec("潜在阶段资料44")
                .setIndicator("潜在阶段资料4")
                .setContent(R.id.view4));
        tabHost.addTab(tabHost.newTabSpec("潜在阶段资料55")
                .setIndicator("潜在阶段资料5")
                .setContent(R.id.view5));
        tabHost.addTab(tabHost.newTabSpec("潜在阶段资料66")
                .setIndicator("潜在阶段资料6")
                .setContent(R.id.view6));
       其中我比较喜欢 tabHost.setCurrentTab(4);这个是设置当前选择的索引值!
为什么说喜欢这个索引呢?因为我想在tab的两侧加上两个ImageButton,作用是点击imagebutton后让当前索引递增或者递减,产生一定 效果!

举报

相关推荐

0 条评论