`
dyllove98
  • 浏览: 1409440 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39188
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80266
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133389
社区版块
存档分类
最新评论

android 应用TabHost优化Activity的GUI

阅读更多
智能移动设备的操作会受限于屏幕的尺寸。一些有关GUI优化技巧不提倡在单独的Activity中显示过多的元素,比较简单的解决办法是将其拆分成多个Activities,每个部分都单独调用。尽管这样解决了表面问题,但是却出现了额外的麻烦,尤其是针对某些内聚属性较高的操作,这样会降低操作的流畅性。
这里介绍一种比较“温馨”的解决方法,应用Widget.TabHost将多个Activities合并成一个Activity,这样就可以同时解决两个问题:

1)        避免单一Activity包含过多元素而过于臃肿,
2)        而且也解决了将复杂的Activities拆分后,降低了拆分“强内聚”而影响到系统的整体性。
对于有经验的朋友会非常容易了解下边例子中包含的方法所代表的作用,那么对于刚刚接触人可以将TabHost理解成类似于浏览器中用来索引不同页面的Tab标签,接下来分析实际的例子。



定义layout:


?View Code XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent">  
    <!--  androidres.com --> 
    <TabHost  
        android:id="@+id/tabhost"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  

        <TabWidget  
            android:id="@android:id/tabs"  
            android:layout_width="fill_parent"  
            android:layout_height="105px"/>  

        <FrameLayout  
            android:id="@android:id/tabcontent"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"  
            android:paddingTop="65px">  


            <LinearLayout  
                android:id="@+id/tab1content"  
                android:orientation="vertical"  
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent"  
                android:background="#00008B">  

                <!--  Put Tab 1 Views in here -->  
            </LinearLayout>  

            <LinearLayout  
                android:id="@+id/tab2content"  
                android:orientation="vertical"  
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent"  
                android:background="#FFFF00">  

                <!--  Put Tab 2 Views in here -->  

            </LinearLayout>  


        </FrameLayout>  
    </TabHost>              
</LinearLayout> 

例子中的LinearLayout作为每个独立标签(TabHost.TabSec)所包含的内容:
1.tabSec.setContent(R.id.tab1content);


同时也可以直接将Intent实体作为参数,这样可以将外部的Activity类作为当前类实体的一部分:
1.tabSec.setContent(new Intent(this, Tab1Activity.class)));


下边分别是两种用于主程序中初始化TabHost的方法,请根据实际的需要选择恰当的处理方式:
1)应用TabSpec分割Activity内部Layout元素(对应于上边的Layout实例):
1.TabHost tabs = (TabHost)this.findViewById(R.id.tabhost);
2.        tabs.setup();  
3.

4.        TabHost.TabSpec one = tabs.newTabSpec("one");
5.        one.setContent(R.id.tab1content);
6.        one.setIndicator("TAB 1");
7.        tabs.addTab(one);


2)将多个Activity类整合到同一个Activity中:
1.TabHost host = getTabHost();
2.host.addTab(host.newTabSpec("one").setIndicator("TAB1").setContent(new Intent(this, Tab1Activity.class)));
3.host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(new Intent(this, Tab2Activity.class)));


其中的Tab1Activity和Tab2Activity分别是两个独立的Activity类,上边的例子中所声明的实体将被植入TabSpec中。
分享到:
评论
4 楼 stonecao 2011-03-22  
请问楼主,我在普通的activity中怎么使用hosttab,给个例子,谢谢!
3 楼 stonecao 2011-03-22  
请问楼主,我在一个普通的activit中怎么使用TabHost,给个示例,谢谢!
2 楼 fzchenjun 2011-03-06  
请问,你这里的Tab1Activity和Tab2Activity是否有实现了什么东西呢?

为什么我setContent(new Intent(this, Tab2Activity.class)); 就会报错!
1 楼 qianjigui 2011-01-15  
学习了,难得的详细。
谢谢!这种方法非常适合对已有的Activity进行改造。

相关推荐

    (框架)Android例子源码——tabhost+activity+slidingMenu仿新浪微博布局.zip

    该压缩包文件是一个Android开发的学习资源,主要展示了如何使用TabHost、Activity以及SlidingMenu来构建一个类似新浪微博的用户界面。下面将详细解释这些技术及其在Android应用开发中的作用。 **TabHost**: TabHost...

    Android 嵌套TabHost示例

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...

    Android例子源码tabhost+activity+slidingMenu

    在Android应用开发中,"Android例子源码tabhost+activity+slidingMenu"是一个常见的应用场景,主要用于构建类似微博客户端的用户界面。这个示例代码集成了TabHost、Activity和SlidingMenu三个关键组件,让我们来深入...

    android的tabhost的一个例子

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以承载不同的Activity或View。在这个例子中,我们将会深入理解如何使用TabHost、ActivityGroup以及源码分析,来...

    Android studio TabHost布局

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。本文将详细讲解如何在Android Studio中使用TabHost进行布局设计,以及如何自定义TabHost的...

    android开发 tabhost应用

    这个“android开发 tabhost应用”的主题聚焦于如何利用TabHost来实现一个可滚动并能调整文字居中显示的Tab效果。下面将详细讲解TabHost的工作原理、配置方法以及实现特定效果的技术细节。 TabHost是Android提供的一...

    Android例子源码tabhost+activity+slidingMenu仿新浪微博布局.zip

    在Android开发领域,构建用户界面是一项关键任务,而TabHost、Activity和SlidingMenu是实现交互丰富、层次分明的应用界面的常见组件。本示例源码"Android例子源码tabhost+activity+slidingMenu仿新浪微博布局.zip...

    TabHost加载Activity及自定义底部导航栏的实现

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与Activity的结合使用,可以构建出类似手机应用商店那样具有多个功能模块的布局。...

    Android-TabHost.rar_android_android tabhost_tabhost_tabhost andr

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与TabWidget和FrameLayout一起工作,为每个标签提供一个视图容器。本教程将深入...

    android Tabhost使用Demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...

    实例讲解Android应用开发中TabHost的使用要点

    在Android应用开发中,TabHost是一个非常重要的组件,用于创建具有多个标签(Tab)的用户界面,每个标签可以展示不同的内容或功能。TabHost通常与TabWidget结合使用,为用户提供一种便捷的方式来切换不同的视图。...

    android TabHost自定义选项卡

    总结来说,自定义Android的TabHost可以使应用的界面更加个性化,同时通过合理利用Fragment可以优化性能。在实际开发中,还可以根据需求调整选项卡的行为,比如添加滑动效果、动画等。通过掌握这些技巧,你可以在...

    Android的tabHost案例

    本案例是为初学者设计的,旨在帮助理解如何在Android应用中有效地使用TabHost。 TabHost是Android提供的一个容器,它允许你将多个小部件(通常是一个TabWidget和一个FrameLayout)组合在一起,形成一个多标签的视图...

    Android studio TabHost应用设计

    要开始构建一个TabHost应用,你需要在Android Studio中创建一个新的项目,并在res/layout目录下创建一个XML布局文件,例如`activity_main.xml`。在这个布局文件中,你需要添加TabHost和TabWidget元素: ```xml ...

    Android Tabhost 实例demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...

    androidTabhost界面切换

    在Android应用开发中,`TabHost` 是一个非常重要的组件,它用于实现多标签页的界面切换,类似于微信、QQ等应用的主界面布局。在本项目中,我们将深入探讨如何利用 `TabHost` 实现类似微信的界面切换效果。 首先,`...

    Tabhost加Activity搭建app框架

    在Android应用开发中,构建一个用户友好的界面是至关重要的,而Tabhost和Activity的结合使用正是为了实现这种多页面、多功能的交互设计。Tabhost是Android提供的一种用于创建带有选项卡界面的组件,它允许用户通过...

    自定义tabhost实现activity 的跳转

    在Android应用开发中,TabHost是一个非常常用的组件,它用于创建具有多个标签(Tab)的界面,每个标签对应一个不同的Activity。本篇文章将详细介绍如何通过自定义TabHost来实现Activity之间的跳转,以及如何设计一个...

    android TabHost简单使用

    在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...

Global site tag (gtag.js) - Google Analytics