你的位置:首页 > 操作系统

[操作系统]Android TabHost使用


TabHost是Android中自带的选项卡控件,效果图如下:

主布局文件

<RelativeLayout "http://schemas.android.com/apk/res/android"  ="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context=".MainActivity" >  <TabHost    android:id="@+id/tabhost"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_alignParentLeft="true"    android:layout_alignParentTop="true" >    <LinearLayout      android:layout_width="match_parent"      android:layout_height="match_parent"      android:orientation="vertical" >      <TabWidget        android:id="@android:id/tabs"        android:layout_width="match_parent"        android:layout_height="wrap_content" >      </TabWidget>      <FrameLayout        android:id="@android:id/tabcontent"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical" >        <LinearLayout          android:id="@+id/tab1"          android:layout_width="match_parent"          android:layout_height="match_parent"          android:orientation="vertical" >        </LinearLayout>        <LinearLayout          android:id="@+id/tab2"          android:layout_width="match_parent"          android:layout_height="match_parent"           android:orientation="vertical">        </LinearLayout>        <LinearLayout          android:id="@+id/tab3"          android:layout_width="match_parent"          android:layout_height="match_parent"          android:orientation="vertical" >        </LinearLayout>      </FrameLayout>    </LinearLayout>  </TabHost></RelativeLayout>

核心代码:

package com.tabhost;import android.os.Bundle;import android.app.Activity;import android.app.ActivityGroup;import android.content.Intent;import android.view.Menu;import android.view.Window;import android.widget.TabHost;public class MainActivity extends ActivityGroup {  private TabHost mTabHost;      protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    this.requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_main);    // 设置TabHost    initTabs();   }      private void initTabs() {    mTabHost = (TabHost) findViewById(R.id.tabhost);    mTabHost.setup(this.getLocalActivityManager());    // 添加日志列表的tab,注意下面的setContent中的代码.是这个需求实现的关键    mTabHost.addTab(mTabHost.newTabSpec("tab_log")     .setIndicator("日志",getResources().getDrawable(R.drawable.login_bg))     .setContent(new Intent(this, LogActivity.class)));       // 添加应用设置的tab,注意下面的setContent中的代码.是这个需求实现的关键    mTabHost.addTab(mTabHost.newTabSpec("tab_setting")     .setIndicator("设置",getResources().getDrawable(R.drawable.ic_launcher))     .setContent(new Intent(this, SettingActivity.class)));    mTabHost.setCurrentTab(1);   }  }

两个子页面很简单,两个Activity以及对应布局。