`

如何使用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 控件 ,否则会报RuntimeException: Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabs' , 同时 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后让当前索引递增或者递减,产生一定 效果!

分享到:
评论

相关推荐

    MFC中使用Tab控件实现选项卡,外加图像控件显示图像

    MFC 中使用 Tab 控件实现选项卡,外加图像控件显示图像 在 MFC 中使用 Tab 控件可以实现选项卡的功能,从而提高用户体验。本文将详细介绍如何在 MFC 中使用 Tab 控件实现选项卡,并在子对话框中使用图像控件显示...

    使用Tab controls window api 函数实现简单界面

    本篇文章将深入探讨如何使用VC6.0和Windows API函数来实现一个简单的Tab控制界面。 首先,理解Tab控件的基本概念。Tab控件(CTabCtrl类)是Windows操作系统提供的一个窗口类,允许程序员在单个窗口内组织多个页面。...

    使用Tab Control实现标签页

    本文将详细介绍如何使用Tab Control来实现标签页功能,以及相关的编程技巧和注意事项。 首先,理解Tab Control的基本结构至关重要。Tab Control通常由两部分组成:一个是可视的标签条,用户可以通过点击这些标签在...

    编码缩进是使用Tab还是空格共2页.pdf.zip

    其中,编码缩进的选择是程序员之间经常讨论的争议点:使用Tab键还是空格?这两种方式都有其支持者,让我们深入探讨它们各自的特点及应用场景。 1. Tab字符:Tab字符在代码中占据的宽度可以根据编辑器或IDE的设置...

    vc/MFC使用Tab Control控件

    使用 VC/MFC 中的 Tab Control 控件 在本文中,我们将详细介绍如何在 VC/MFC 中使用 Tab Control 控件来创建一个带有选项卡的对话框。 首先,我们需要新建一个 MFC 工程,选择 Dialog based,然后删除默认添加的三...

    彻底修复E4A编辑器tab崩溃插件

    这样,用户在编写代码时就可以正常地使用tab键进行代码缩进和自动补全,而无需担心IDE会突然崩溃。 E4A的tab崩溃问题可能是由于IDE内部的代码处理机制或者与操作系统兼容性问题引起的。插件开发者的解决方案可能...

    使用Tab Bar切换视图和ToolBar切换视图

    本文将详细探讨如何使用Tab Bar来实现视图间的切换,相比于上篇文章中提到的使用ToolBar,Tab Bar提供了一种更为直观且常见的方式让用户在多个视图间进行切换。 Tab Bar Controller是iOS SDK中内置的一种控制器,它...

    VC6.0中Tab控件的使用

    本文将深入探讨如何在MFC(Microsoft Foundation Classes)框架下使用Tab控件,创建一个基于对话框的应用程序。 首先,让我们了解什么是Tab控件。在Windows编程中,Tab控件通常由一个或多个标签页组成,每个标签页...

    iOS 自定义tab滑块: segment功能+label混合显示;( Slider 双区间)【应用场景:商户交易汇总表使用tab滑块进行切换/筛选不同级别的代

    1、文章地址:...3、需求商户交易汇总表使用tab滑块进行切换/筛选不同级别的代理商数据 4、应用场景:商户交易汇总表使用tab滑块进行切换/筛选不同级别的代理商数据

    Docker使用tab无法自动补全命令

    Docker使用tab无法自动补全命令

    用Tab键控制UGUI的InputField切换Unity3D项目

    在这个项目中,我们将关注如何使用Tab键来控制UGUI中的InputField组件进行切换,这在创建多输入框的表单时非常实用。Unity版本为5.6.4,需要注意的是不同版本的Unity可能在某些API或功能上有差异,因此在使用时应...

    tab控件的使用

    本文将深入讲解如何在C++环境中,特别是基于MFC库,来理解和使用Tab控件。 首先,我们来看`CtabCtrl`这个类。它是MFC中的一个控件类,直接继承自`CWnd`,提供了对Windows标准Tab控件的封装。通过`CtabCtrl`,开发者...

    bootstrap动态生成tab

    在本场景中,"bootstrap动态生成tab"涉及到的主要知识点包括JavaScript编程、Bootstrap框架的Tab组件以及可能的IFrame和Div元素的嵌套使用。 1. **Bootstrap Tab组件**:Bootstrap的Tab组件提供了一种简洁的方式,...

    MFC TAB控件的使用

    本篇文章将详细介绍如何在MFC应用中使用TAB控件,以及如何实现特定功能,如网址输入验证、去重和时间排序。 首先,我们需要在MFC工程中添加一个TAB控件。这可以通过在资源视图中选择“其他控件”类别,然后选择...

    Tab2Shp 批量tab转shp工具

    为了使用Tab2Shp工具,用户应确保具备一定的GIS基础知识,包括对不同数据格式的理解,以及基本的文件操作能力。同时,根据软件的开源或商业性质,可能需要遵循特定的许可协议。 总之,Tab2Shp工具作为一款强大的...

    CVI 8.0 TAB控件的使用

    CVI 8.0 TAB控件的使用 CVI 8.0 中的 TAB 控件是对话框中的一个重要组件,用于实现多个页面的切换和显示。在 CVI 8.0 中,TAB 控件的使用有了很大的改进,使用更加方便了。但是,在使用 TAB 控件时需要注意几个重要...

    支持网页版的SSH 工具-Tabby介绍.docx

    1. 多平台支持:Tabby提供了Windows、MacOS(Intel芯片/M1芯片)、Linux等多平台的安装包,使得用户可以在不同的操作系统中使用Tabby。 2. SFTP功能:Tabby自带SFTP功能,能够与Linux系统传输文件,使得文件传输...

    精彩编程与编程技巧-对象是使用 TAB 键还是鼠标激活的...

    精彩编程与编程技巧-对象是使用 TAB 键还是鼠标激活的 ...

Global site tag (gtag.js) - Google Analytics