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

[操作系统]TabWidgetDemo


TabWidget可以通过不同的标签进行切换并且显示不同的内容,相当于Button按钮实现不同的功能。

TabHost的布局:

(1):我们先在Layouts拖一个Vertical(纵向视图)的LinearLayout,再在Composite下拖动TabHost组件时会有三个LinearLayout,把它都删去。

(2):在LinearLayout视图中会有

(3):当你执行(1)时你会发现,删去了有错误提示的三个LinearLayout之后就只剩一个标签了,这时我们就把Vertical(纵向视图)的LinearLayout模板改换成我们的TabHost模板即可。接下来复制

(4):此时便相当于FrameLayout布局了,接下来直接把TextView放在FrameLayout作为标签使用即可。

activity_main.

  <TabHost    ="http://schemas.android.com/apk/res/android"    android:id="@android:id/tabhost"    android:layout_width="match_parent"    android:layout_height="wrap_content" >    <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="414dp" >        <TextView          android:id="@+id/textView1"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:textColor="#00FF00"           android:text="TextView" />        <TextView          android:id="@+id/textView2"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:textColor="#FF0000"          android:text="TextView" />        <TextView          android:id="@+id/textView3"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:textColor="#0099CC"          android:text="TextView" />              </FrameLayout>    </LinearLayout>  </TabHost>

如图:

而MainActivity则改为继承TabActivity方法(本来是继承Activity方法)

package com.example.tabwidgetdemo;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.TabActivity;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.graphics.Color;import android.view.Menu;import android.widget.TabHost;import android.widget.TabHost.OnTabChangeListener;public class MainActivity extends TabActivity {  private TabHost tabHost;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);        tabHost=getTabHost();    //添加Tab标签    addTab();    //设置TabHost背景颜色    tabHost.setBackgroundColor(Color.argb(150, 20, 50, 150));    //设置背景图片资源    tabHost.setBackgroundResource(R.drawable.a);    //启动位置    tabHost.setCurrentTab(0);    tabHost.setOnTabChangedListener(new OnTabChangeListener() {            @Override      public void onTabChanged(String tabID) {        // TODO Auto-generated method stub        AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);        Dialog dialog;        builder.setTitle("提示");        builder.setMessage("当前选中了"+tabID+"标签");        builder.setPositiveButton("确定", new OnClickListener() {                    @Override          public void onClick(DialogInterface dialog, int which) {            // TODO Auto-generated method stub            dialog.cancel();          }        });        dialog=builder.create();        dialog.show();      }    });  }    //添加Tab标签  private void addTab() {    // TODO Auto-generated method stub    //设置标签图表    tabHost.addTab(tabHost.newTabSpec("tab1")        .setIndicator("TAB1", getResources()        .getDrawable(R.drawable.a))        .setContent(R.id.textView1));    tabHost.addTab(tabHost.newTabSpec("tab2")        .setIndicator("TAB2", getResources()        .getDrawable(R.drawable.a))        .setContent(R.id.textView2));    tabHost.addTab(tabHost.newTabSpec("tab3")        .setIndicator("TAB3", getResources()        .getDrawable(R.drawable.a))        .setContent(R.id.textView3));  }  @Override  public boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.main, menu);    return true;  }}

执行效果如图:

 If reference to indicate the source:蔡都平