`

TabHost三种实现方式

 
阅读更多

第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了.

xml布局:

  1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent" android:layout_height="fill_parent">   
  3.     <LinearLayout android:id="@+id/widget_layout_Blue"  
  4.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  5.         android:orientation="vertical" >   
  6.         <EditText android:id="@+id/widget34" android:layout_width="fill_parent"  
  7.             android:layout_height="wrap_content" android:text="EditText"  
  8.             android:textSize="18sp">   
  9.         </EditText>   
  10.         <Button android:id="@+id/widget30" android:layout_width="wrap_content"  
  11.             android:layout_height="wrap_content" android:text="Button">   
  12.         </Button>   
  13.     </LinearLayout>   
  14.     <LinearLayout android:id="@+id/widget_layout_red"  
  15.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  16.         android:orientation="vertical"  >   
  17.         <AnalogClock android:id="@+id/widget36"  
  18.             android:layout_width="wrap_content" android:layout_height="wrap_content">   
  19.         </AnalogClock>   
  20.     </LinearLayout>   
  21.     <LinearLayout android:id="@+id/widget_layout_green"  
  22.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  23.         android:orientation="vertical">   
  24.         <RadioGroup android:id="@+id/widget43"  
  25.             android:layout_width="166px" android:layout_height="98px"  
  26.             android:orientation="vertical">   
  27.             <RadioButton android:id="@+id/widget44"  
  28.                 android:layout_width="wrap_content" android:layout_height="wrap_content"  
  29.                 android:text="RadioButton">   
  30.             </RadioButton>   
  31.             <RadioButton android:id="@+id/widget45"  
  32.                 android:layout_width="wrap_content" android:layout_height="wrap_content"  
  33.                 android:text="RadioButton">   
  34.             </RadioButton>   
  35.         </RadioGroup>   
  36.     </LinearLayout>   
  37. </FrameLayout>   
  38.   
  39. java代码:   
  40. super.onCreate(savedInstanceState);   
  41.         myTabhost=this.getTabHost();   
  42.         //get Tabhost   
  43.         LayoutInflater.from(this).inflate(R.layout.main, myTabhost.getTabContentView(), true);   
  44.         myTabhost.setBackgroundColor(Color.argb(1502270150));   
  45.            
  46.         myTabhost   
  47.                 .addTab(myTabhost.newTabSpec("One")// make a new Tab   
  48.                         .setIndicator("A")   
  49.                         // set the Title and Icon   
  50.                         .setContent(R.id.widget_layout_Blue));   
  51.         // set the layout   
  52.   
  53.         myTabhost   
  54.                 .addTab(myTabhost.newTabSpec("Two")// make a new Tab   
  55.                         .setIndicator("B",   
  56.                                 getResources().getDrawable(R.drawable.mumule))   
  57.                         // set the Title and Icon   
  58.                         .setContent(R.id.widget_layout_green));   
  59.         // set the layout   
  60.   
  61.         myTabhost   
  62.                 .addTab(myTabhost.newTabSpec("Three")// make a new Tab   
  63.                         .setIndicator("C",   
  64.                                 getResources().getDrawable(R.drawable.notepad))   
  65.                         // set the Title and Icon   
  66.                         .setContent(R.id.widget_layout_red));

 

第二种:不用继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是
@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义.

xml布局:

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     
  3.     android:id="@+id/hometabs"  
  4.     android:orientation="vertical"  
  5.     android:layout_width="fill_parent"     
  6.     android:layout_height="fill_parent">    
  7.     <TabHost android:id="@+id/tabhost"  
  8.         android:layout_width="wrap_content"  
  9.         android:layout_height="wrap_content">   
  10.         <LinearLayout   
  11.             android:orientation="vertical"  
  12.             android:layout_width="fill_parent"  
  13.             android:layout_height="fill_parent">   
  14.                
  15.             <TabWidget android:id="@android:id/tabs"    
  16.               android:orientation="horizontal"  
  17.               android:layout_width="wrap_content"  
  18.               android:layout_height="wrap_content">   
  19.             </TabWidget>   
  20.             
  21.              <FrameLayout android:id="@android:id/tabcontent"  
  22.                   android:layout_width="wrap_content"  
  23.                   android:layout_height="wrap_content">   
  24.                     <TextView android:id="@+id/view1"  
  25.                         android:layout_width="fill_parent"  
  26.                         android:layout_height="fill_parent"/>   
  27.                     <TextView android:id="@+id/view2"  
  28.                         android:layout_width="fill_parent"  
  29.                         android:layout_height="fill_parent"/>   
  30.                     <TextView android:id="@+id/view3"  
  31.                         android:layout_width="fill_parent"  
  32.                         android:layout_height="fill_parent"/>   
  33.              </FrameLayout>   
  34.             
  35.          </LinearLayout>   
  36.     </TabHost>   
  37. </LinearLayout>   
  38.   
  39. java代码:   
  40. protected void onCreate(Bundle savedInstanceState) {   
  41.         super.onCreate(savedInstanceState);   
  42.         setContentView(R.layout.hometabs);   
  43.            
  44.         TabHost tabHost = (TabHost) findViewById(R.id.tabhost);   
  45.         tabHost.setup();   
  46.         TabWidget tabWidget = tabHost.getTabWidget();   
  47.            
  48.         tabHost.addTab(tabHost.newTabSpec("tab1")   
  49.                 .setIndicator("tab1", getResources().getDrawable(R.drawable.mumule))   
  50.                 .setContent(R.id.view1));   
  51.            
  52.         tabHost.addTab(tabHost.newTabSpec("tab3")   
  53.                 .setIndicator("tab3")   
  54.                 .setContent(R.id.view3));   
  55.            
  56.         tabHost.addTab(tabHost.newTabSpec("tab2")   
  57.                 .setIndicator("tab2")   
  58.                 .setContent(R.id.view2));   
  59.            
  60.         final int tabs = tabWidget.getChildCount();   
  61.         Log.i(TAG, "***tabWidget.getChildCount() : " + tabs);   
  62.            
  63.         final int tabWidth = 90;   
  64.         final int tabHeight = 45;   
  65.            
  66.         for (int i = 0; i < tabs; i++) {   
  67.           
  68.         }   
  69.     }  

分享到:
评论

相关推荐

    TabHost的各种实现方式

    - 在Android 3.0及以上版本,Action Bar提供了一种新的Tab实现方式。虽然现在推荐使用ViewPager配合TabLayout,但了解Action Bar的Tab模式可以帮助理解TabHost的历史演变。 7. **使用第三方库**: - 如`androidx....

    关于Tabhost的三个实现方式

    这篇文档将详细介绍TabHost的三种实现方式,旨在帮助初学者更好地理解和应用这一功能。 ### 1. 基于TabSpec的实现 **步骤1:初始化TabHost** 首先,你需要在布局文件中添加TabHost,并通过`&lt;TabHost&gt;`标签定义它...

    详解Android TabHost的多种实现方法 附源码下载

    在实际开发中,选择哪种实现方式取决于项目需求和个人偏好。不继承`TabActivity`的方式更加灵活,可以避免不必要的Activity层级,而继承`TabActivity`则更简洁,适合快速搭建多标签页面。 由于篇幅原因,以上内容仅...

    tabhost跟viewPager结合实现滑动tabhost

    在Android开发中,TabHost和ViewPager是两种常用的组件,它们分别用于实现标签栏和页面滑动效果。将两者结合可以创建出一个具有可滑动标签的动态应用界面,这种设计在许多应用程序中都非常常见,如社交应用、新闻...

    Android 应用常用的TabHost模版

    总的来说,Android的TabHost模版是构建底部导航栏界面的一种有效方式,开发者可以根据具体需求对其进行定制,以提供更加友好的用户体验。在实际应用中,我们还需要考虑到不同屏幕尺寸、Android版本兼容性以及性能...

    android TabHost 底部显示

    在Android开发中,TabHost是实现底部导航栏(Tab Bar)的一种传统方式,它允许用户在不同的内容区域之间切换,通常用于多视图的应用设计。本文将深入探讨如何使用TabHost来实现在Android应用底部显示选项卡的功能。 ...

    使用TabHost仿微博客户端界面

    在“使用TabHost仿微博客户端界面”的场景中,可能的实现方式是: - 创建三个或更多的Tab,分别对应“首页”、“发现”、“我的”等常见功能。 - 对于每个Tab,可以创建一个单独的`Fragment`来承载对应的内容。这样...

    TabHost实现

    总的来说,`TabHost`是Android中实现多标签界面的一种基础方式。通过合理地配置XML布局和Java代码,开发者可以轻松地创建出功能丰富的标签式界面。然而,随着Android版本的更新,`TabHost`逐渐被Fragment和`...

    tabhost的各种特效

    2. **滑动切换**:在`TabHost`中实现滑动切换效果,通常需要借助第三方库,如`PagerSlidingTabStrip`。`PagerSlidingTabStrip`是一个流行的选择,它提供了平滑的滑动效果和可定制的选项卡样式。在`...

    android TabHost+slidingmenu简单实现

    TabHost主要用于创建带有标签页的应用,而SlidingMenu则提供了一种侧滑展示菜单的效果,通常用于实现类似iOS中的抽屉式导航。在这个“android TabHost+slidingmenu简单实现”的主题中,我们将探讨如何将这两个组件...

    TabHost技巧

    对于使用 `TabHost` 的场景,可以通过以下几种方式实现页面间的数据传递: 1. **使用 Intent Extras**:在启动新的 Activity 时,可以通过 `Intent` 对象的 `putExtra` 方法附加数据,然后在新 Activity 中通过 `...

    自定义TabHost经典案例

    然而,系统默认的TabHost功能有限,样式和交互方式较为固定,因此开发者通常需要对其进行自定义以满足更加个性化的应用需求。本经典案例将深入探讨如何自定义TabHost,打破传统限制,实现更加灵活多变的选项卡界面。...

    Fragment实现tabhost的效果

    通过这种方式,你可以实现一个具有多个选项卡的界面,每个选项卡显示不同的Fragment内容。这种方法比传统的TabHost更灵活,更易于维护,并且能够更好地适应不同设备的屏幕尺寸。在实际项目中,还可以结合`ViewPager`...

    Android TabHost Spinner ListView 实例代码

    在Android开发中,`TabHost`、`Spinner`和`ListView`...以上就是关于`TabHost`、`Spinner`和`ListView`的详细讲解,以及它们在实际项目中的集成方式。理解并熟练掌握这些组件的使用,对于Android开发人员来说至关重要。

    android tabhost 日期

    在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在TabHost的每个选项卡上实现了日期相关的功能。 TabHost允许我们将多个Activity或者Fragment组织在一个Activity内,通过...

    TabHost介绍包含把默认的放在左面,很实用免积分

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,它允许用户...垂直布局的TabHost虽然不常见,但通过一些技巧和第三方库,开发者可以实现这样的效果,从而提供更独特的用户体验。

    TabHost切换

    - 虽然`TabHost`本身并不支持滑动切换,但可以通过第三方库如`ViewPager`或者自定义实现来实现这一功能。`ViewPager`是一个非常流行的组件,用于在水平方向上滑动浏览多个页面。你可以将`TabHost`与`ViewPager`结合...

    Android tabhost控件

    `TabHost`是Android早期版本中实现标签栏导航的经典方式,虽然现在有了更好的替代方案,但理解`TabHost`的工作原理对于Android开发历史和基础概念的理解仍然非常重要。在实际项目中,你可以根据需求选择适合的标签栏...

    TabHost使用方法

    TabHost 是 Android 提供的一个用于实现标签式导航的控件,它可以帮助开发者轻松地创建具有多个标签页的应用程序界面。通过 TabHost,用户可以在不同的标签页之间进行快速切换,从而查看不同的内容或功能模块。这种...

Global site tag (gtag.js) - Google Analytics