`

android TabHost

阅读更多
先看一下效果:



TabHost是整个Tab的容器,包括两部分:TabWidgetFrameLayout。TabWidget就是每个tab的标签,FrameLayout则是tab内容。

TabHost的二种实现方式:

        第一种:继承TabActivity
        第二种:只是单纯的继承Activity类




下面是实现的效果:

第一种:继承TabActivity

    1、如果我们使用extendsTabAcitivty,如同ListActivity,TabHost必须设置为  @android:id/tabhost
    2、TabWidget必须设置android:id为@android:id/tabs
    3、FrameLayout需要设置android:id为@android:id/tabcontent


布局文件 activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >
   <TabHost
       android:id="@android:id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
       <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:orientation="vertical">
           <TabWidget
               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:visibility="visible"/>
           <FrameLayout
               android:id="@android:id/tabcontent"
               android:layout_width="fill_parent"
               android:layout_height="0.0dp"
               android:layout_weight="1.0"
               android:background="@android:color/white">
           </FrameLayout>
       </LinearLayout>
   </TabHost>
</LinearLayout>



下面是继承TabActivity
public class MainActivity extends TabActivity{

    TabHosttabHost ;
    RadioGroupradioGroup;
   @Override
    protectedvoid onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      tabHost =getTabHost();      
      tabHost.addTab(
           tabHost.newTabSpec("trends")
                  .setIndicator("动态")
                  .setContent(newIntent(MainActivity.this,TrendsActivity.class)));
      
       tabHost.addTab(
          tabHost.newTabSpec("groups")
                 .setIndicator("群组")
                 .setContent(newIntent(MainActivity.this,GroupsActivity.class)));
    }
   
}




第二种:不继承任何类在代码里加载
布局文件  和上面一样 只是TabHost 的id 换为其他
activity_main.xml

继承Activity类
public class MainActivity extends ActivityGroup{

    TabHost tabHost ;
    RadioGroupradioGroup;
   @Override
    protectedvoid onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
       tabHost = (TabHost)findViewById(R.id.m_tabhost);
      //如果通过findViewById得到TabHost一定要调用 TabHost.setup();
        LocalActivityManagerlocalAcManager = new LocalActivityManager(MainActivity.this,true);
      localAcManager.dispatchCreate(savedInstanceState);
       tabHost.setup(localAcManager);
      tabHost.addTab(tabHost.newTabSpec("trends").setIndicator("动态").setContent(newIntent(MainActivity.this,TrendsActivity.class)));
      tabHost.addTab(tabHost.newTabSpec("groups").setIndicator("群组").setContent(newIntent(MainActivity.this,GroupsActivity.class)));
    } 
   
}



两种介绍完了。但系统提供的TabHost不好看,修改很难...
看了下别人的  大概是这样修改的,就第二种方法而言,其他不改,把TabWidget空间变为不可见,然后自己弄些控件替代。
  <TabWidget
               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:visibility="gone"/>





更多参考:

http://nodebook.info/book/view?bid=5354725719980e913e9be3f1

http://www.apkbus.com/android-82426-1-1.html

http://www.apkbus.com/android-720-1-1.html














  • 大小: 11.1 KB
  • 大小: 30.3 KB
分享到:
评论

相关推荐

    android Tabhost使用Demo

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

    Android TabHost Spinner ListView 实例代码

    在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...

    androidtabhost的使用

    androidTabhost的使用实例代码,仅供参考

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 动态添加 删除 排序 重命名

    android tabhost 动态添加,删除,排序,重命名(5)

    android tabhost 动态添加,删除,排序,重命名

    android tabhost 日期

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...

    android tabhost 动态添加,删除,排序,重命名(1)

    android tabhost 动态添加,删除,排序,重命名

    android TabHost简单使用

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

    android TabHost分页

    android TabHost分页 demo 一开始就能用

    Android Tabhost 实例demo

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

    Android 嵌套TabHost示例

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

    android Tabhost 实现底部菜单效果

    在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...

    Android TabHost 实例源码

    在Android开发中,TabHost是一个核心组件,它用于创建具有多个可切换标签的用户界面,类似于浏览器中的标签页。TabHost结合TabWidget和FrameLayout一起工作,提供了在单个屏幕上组织多个活动(Activities)或视图...

    Android TabHost实例完整工程源码

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以关联到一个不同的Activity或Fragment,实现多页面的切换。本实例提供了一个完整的TabHost应用源码,帮助开发者...

    Android TabHost 经典使用技巧

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的Activity或Fragment,实现多视图的切换。本文将深入探讨Android TabHost的经典使用技巧,帮助开发者构建...

    Android TabHost 标签在屏幕左侧样例

    在Android开发中,TabHost是一个常用的组件,用于创建带有多个Tab的界面,这些Tab可以切换不同的内容区域。然而,Android SDK中的默认TabHost设计将标签置于屏幕顶部或底部,这可能无法满足所有开发者的设计需求。在...

    android tabhost --android UI源码.rar

    在Android开发中,TabHost是实现标签栏布局的重要组件,它是Android SDK提供的一种原生UI控件,用于创建带有多个选项卡的应用界面。这个“android tabhost --android UI源码.rar”压缩包文件包含了关于如何使用...

    android tabhost --android UI源码.zip

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,让用户可以在不同的视图间切换,从而实现类似浏览器的导航体验。本项目源码着重展示了如何利用TabHost构建复杂的Android UI。以下...

Global site tag (gtag.js) - Google Analytics