zoukankan      html  css  js  c++  java
  • TabHost标签页控件

     指定标签与自定义标签的示例

    布局代码:

     1 <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:id="@+id/tabhost"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <LinearLayout
     8         android:layout_width="match_parent"
     9         android:layout_height="match_parent"
    10         android:orientation="vertical" >
    11 
    12         <TabWidget
    13             android:id="@android:id/tabs"
    14             android:layout_width="match_parent"
    15             android:layout_height="wrap_content" />
    16 
    17         <FrameLayout
    18             android:id="@android:id/tabcontent"
    19             android:layout_width="match_parent"
    20             android:layout_height="0dp"
    21             android:layout_weight="1" >
    22 
    23             <!-- 首页 -->
    24 
    25             <LinearLayout
    26                 android:id="@+id/line1"
    27                 android:layout_width="match_parent"
    28                 android:layout_height="match_parent" >
    29 
    30                 <TextView
    31                     android:layout_width="match_parent"
    32                     android:layout_height="match_parent"
    33                     android:text="首页" />
    34             </LinearLayout>
    35             <!-- 第二页 -->
    36 
    37             <LinearLayout
    38                 android:id="@+id/line2"
    39                 android:layout_width="match_parent"
    40                 android:layout_height="match_parent" >
    41 
    42                 <TextView
    43                     android:layout_width="match_parent"
    44                     android:layout_height="match_parent"
    45                     android:text="第二页" />
    46             </LinearLayout>
    47             <!-- 第三页 -->
    48 
    49             <LinearLayout
    50                 android:id="@+id/line3"
    51                 android:layout_width="match_parent"
    52                 android:layout_height="match_parent" >
    53 
    54                 <TextView
    55                     android:layout_width="match_parent"
    56                     android:layout_height="match_parent"
    57                     android:text="第三页" />
    58             </LinearLayout>
    59         </FrameLayout>
    60     </LinearLayout>
    61 
    62 </TabHost>

    TabWidget和FrameLayout的id都是定死的,从TabHost.setup()中源码中被定死。

    自定义的标签布局:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:background="@drawable/statelist"
     6     android:orientation="vertical" >
     7 
     8     <TextView
     9         android:id="@+id/tv_title"
    10         android:layout_width="match_parent"
    11         android:layout_height="match_parent"
    12         android:text="首页"
    13         android:textColor="@android:color/white"
    14         android:textSize="22sp" 
    15         android:gravity="center"/>
    16 
    17 </LinearLayout>

    选择时的颜色 res/drawable

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@drawable/bg_selected" android:state_selected="true"/> <!-- 选中的颜色 -->
        <item android:drawable="@drawable/bg_normal"/>
    
    </selector>

    MainActivity代码

     1 package com.android.hzy.tabhost;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.widget.TabHost;
     7 import android.widget.TabHost.TabSpec;
     8 import android.widget.TextView;
     9 
    10 public class MainActivity extends Activity {
    11 
    12     private TabHost mTabHost;
    13     
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.activity_main);
    18         
    19         mTabHost = (TabHost) findViewById(R.id.tabhost);
    20         mTabHost.setup(); // 找到 tabwidget\FrameLayout 源码里面id定死
    21         
    22         // 添加标签页
    23         TabSpec tab1 = mTabHost.newTabSpec("tab1");
    24 //        tab1.setIndicator("首页", getResources().getDrawable(R.drawable.i1));// 指定标签
    25         tab1.setIndicator(createView("首页")); // 自定义标签
    26         tab1.setContent(R.id.line1);// 指定标签页的内容
    27         mTabHost.addTab(tab1);
    28         
    29         TabSpec tab2 = mTabHost.newTabSpec("tab2");
    30 //        tab2.setIndicator("第二页", getResources().getDrawable(R.drawable.i2));// 指定标签
    31         tab2.setIndicator(createView("第二页")); // 自定义标签
    32         tab2.setContent(R.id.line2);// 指定标签页的内容
    33         mTabHost.addTab(tab2);
    34         
    35         TabSpec tab3 = mTabHost.newTabSpec("tab3");
    36 //        tab3.setIndicator("第三页", getResources().getDrawable(R.drawable.i7));// 指定标签
    37         tab3.setIndicator(createView("第三页")); // 自定义标签
    38         tab3.setContent(R.id.line3);// 指定标签页的内容
    39         mTabHost.addTab(tab3);
    40     }
    41     
    42     private View createView(String text){
    43         View view = View.inflate(getApplicationContext(), R.layout.tab, null);
    44         TextView  tv_title = (TextView) view.findViewById(R.id.tv_title);
    45         tv_title.setText(text);
    46         return view;
    47     }
    48 
    49 
    50 }
  • 相关阅读:
    使用变焦摄影镜头的10条经验
    Savage 2:灵魂拷问者Linux即时战略游戏
    在FlashCom中检测摄像头和麦克风的方法
    Asp.net 在线转Flv
    linux的启动加密
    一个命令轻轻松松重新初始化Ubuntu软件包
    Firefox扩展开发学习杂记
    使用 XUL 实现浏览器扩展,第 1 部分: 使用用户界面特性创建一个 Firefox 浏览
    ffmpeg参数解释中文详细
    用mencoder解决ffmpeg转换wmv/asf to flv花屏的问题,并支持rm/rmvb
  • 原文地址:https://www.cnblogs.com/androidez/p/2909549.html
Copyright © 2011-2022 走看看