• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
在北京的四川小伙
一切不以结婚为目的的恋爱,都是耍流氓 -----爱因斯坦●涛
博客园    首页    新随笔    联系   管理    订阅  订阅

getTabHost两种实现方式

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

xml布局: 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent" android:layout_height="fill_parent">  
    <LinearLayout android:id="@+id/widget_layout_Blue"  
        android:layout_width="fill_parent" android:layout_height="fill_parent"  
        android:orientation="vertical" >  
        <EditText android:id="@+id/widget34" android:layout_width="fill_parent"  
            android:layout_height="wrap_content" android:text="EditText"  
            android:textSize="18sp">  
        </EditText>  
        <Button android:id="@+id/widget30" android:layout_width="wrap_content"  
            android:layout_height="wrap_content" android:text="Button">  
        </Button>  
    </LinearLayout>  
    <LinearLayout android:id="@+id/widget_layout_red"  
        android:layout_width="fill_parent" android:layout_height="fill_parent"  
        android:orientation="vertical"  >  
        <AnalogClock android:id="@+id/widget36"  
            android:layout_width="wrap_content" android:layout_height="wrap_content">  
        </AnalogClock>  
    </LinearLayout>  
    <LinearLayout android:id="@+id/widget_layout_green"  
        android:layout_width="fill_parent" android:layout_height="fill_parent"  
        android:orientation="vertical">  
        <RadioGroup android:id="@+id/widget43"  
            android:layout_width="166px" android:layout_height="98px"  
            android:orientation="vertical">  
            <RadioButton android:id="@+id/widget44"  
                android:layout_width="wrap_content" android:layout_height="wrap_content"  
                android:text="RadioButton">  
            </RadioButton>  
            <RadioButton android:id="@+id/widget45"  
                android:layout_width="wrap_content" android:layout_height="wrap_content"  
                android:text="RadioButton">  
            </RadioButton>  
        </RadioGroup>  
    </LinearLayout>  
</FrameLayout>  

Java代码

super.onCreate(savedInstanceState);  
        myTabhost=this.getTabHost();  
        //get Tabhost  
        LayoutInflater.from(this).inflate(R.layout.main, myTabhost.getTabContentView(), true);  
        myTabhost.setBackgroundColor(Color.argb(150, 22, 70, 150));  
          
        myTabhost  
                .addTab(myTabhost.newTabSpec("One")// make a new Tab  
                        .setIndicator("A")  
                        // set the Title and Icon  
                        .setContent(R.id.widget_layout_Blue));  
        // set the layout  
  
        myTabhost  
                .addTab(myTabhost.newTabSpec("Two")// make a new Tab  
                        .setIndicator("B",  
                                getResources().getDrawable(R.drawable.mumule))  
                        // set the Title and Icon  
                        .setContent(R.id.widget_layout_green));  
        // set the layout  
  
        myTabhost  
                .addTab(myTabhost.newTabSpec("Three")// make a new Tab  
                        .setIndicator("C",  
                                getResources().getDrawable(R.drawable.notepad))  
                        // set the Title and Icon  
                        .setContent(R.id.widget_layout_red)); 

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

xml布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:id="@+id/hometabs"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"    
    android:layout_height="fill_parent">   
    <TabHost android:id="@+id/tabhost"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content">  
        <LinearLayout  
            android:orientation="vertical"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent">  
              
            <TabWidget android:id="@android:id/tabs"   
              android:orientation="horizontal"  
              android:layout_width="wrap_content"  
              android:layout_height="wrap_content">  
            </TabWidget>  
           
             <FrameLayout android:id="@android:id/tabcontent"  
                  android:layout_width="wrap_content"  
                  android:layout_height="wrap_content">  
                    <TextView android:id="@+id/view1"  
                        android:layout_width="fill_parent"  
                        android:layout_height="fill_parent"/>  
                    <TextView android:id="@+id/view2"  
                        android:layout_width="fill_parent"  
                        android:layout_height="fill_parent"/>  
                    <TextView android:id="@+id/view3"  
                        android:layout_width="fill_parent"  
                        android:layout_height="fill_parent"/>  
             </FrameLayout>  
           
         </LinearLayout>  
    </TabHost>  
</LinearLayout>  

Java代码

protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.hometabs);  
          
        TabHost tabHost = (TabHost) findViewById(R.id.tabhost);  
        tabHost.setup();  
        TabWidget tabWidget = tabHost.getTabWidget();  
          
        tabHost.addTab(tabHost.newTabSpec("tab1")  
                .setIndicator("tab1", getResources().getDrawable(R.drawable.mumule))  
                .setContent(R.id.view1));  
          
        tabHost.addTab(tabHost.newTabSpec("tab3")  
                .setIndicator("tab3")  
                .setContent(R.id.view3));  
          
        tabHost.addTab(tabHost.newTabSpec("tab2")  
                .setIndicator("tab2")  
                .setContent(R.id.view2));  
          
        final int tabs = tabWidget.getChildCount();  
        Log.i(TAG, "***tabWidget.getChildCount() : " + tabs);  
          
        final int tabWidth = 90;  
        final int tabHeight = 45;  
          
        for (int i = 0; i < tabs; i++) {  
        /*  final View view = tabWidget.getChildAt(i); 
            view.getLayoutParams().width = tabWidth; 
            view.getLayoutParams().height = tabHeight; 
            final TextView tv = (TextView) view.findViewById(android.R.id.title); 
            tv.setTextColor(this.getResources().getColorStateList(android.R.color.black)); 
            MarginLayoutParams tvMLP = (MarginLayoutParams)tv.getLayoutParams(); 
            tvMLP.bottomMargin = 8;*/  
        }  
    }  

 

如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。 QQ:6203142 -----在北京的四川小伙
posted @ 2015-03-27 11:32  在北京的四川小伙  阅读(606)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3