android学习--TabHost选项卡组件

        TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置多个标签页,每个标签页获得了一个与外部容器相同大小的组件摆放区域。在手机系统的应用类似“未接电话”、“已接电话”、“呼出电话”等。

        1 、 TabHost提供了两个方法来创建选项卡、添加选项卡

               newTabSpec(String tag)  : 创建选项卡

              addTab(TabHost.TabSpec  tabSpec) : 添加选项卡


       2、TabHost 切换选项卡触发的监听是TabHost.OnTabChangeListener



下面通过案例来熟悉TabHost

       使用TabHost的一般步骤为:

       (1)在界面布局中为TabHost定义改选项卡的内容

       (2)Activity继承TabActivity

       (3)调用TabActivity的getTabHost()方法获取TabHost对象

       (4)通过TabHost对象的方法来创建选项卡、添加选项卡


 跟着上面步骤来实现TabHost案例


(1)在界面布局中为TabHost定义改选项卡的内容,一般采用FrameLayout作为根布局,每个标签页面对应一个子节点的Layout


 
      
        
            
            
            
        
        
         
        
            
            
        
        
         
        
            
                
                
                
                
            
        
    

(2)Activity继承TabActivity

(3)调用TabActivity的getTabHost()方法获取TabHost对象

 (4)通过TabHost对象的方法来创建选项卡、添加选项卡


package com.example.tabhost;

import android.app.TabActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		
		//获取TabHost 对象
		TabHost tabHost = getTabHost();
		//设置使用TabHost布局
		//from(this)从这个TabActivity获取LayoutInflater
		//R.layout.main 存放Tab布局
		//通过TabHost获得存放Tab标签页内容的FrameLayout
		//是否将inflate 拴系到根布局元素上
		LayoutInflater.from(this).inflate(R.layout.activity_main,
				tabHost.getTabContentView(), true);
		
		//添加第一个标签页
		//setIndicator  添加表体,可以是view
		//添加tab内容   布局
		tabHost.addTab(tabHost.newTabSpec("tab1")
			.setIndicator("TAB1")
			.setContent(R.id.widget_layout_Blue)); 
		
		//添加第二个标签页
		tabHost.addTab(tabHost.newTabSpec("tab2")
			//在标签标题上放置图标
			.setIndicator("TAB2")
			.setContent(R.id.widget_layout_red)); 
		
		//添加第三个标签页
		tabHost.addTab(tabHost.newTabSpec("tab3")
			.setIndicator("TAB3")
			.setContent(R.id.widget_layout_green)); 	
		
		//添加监听
		tabHost.setOnTabChangedListener(new OnTabChangeListener() {
			
			@Override
			public void onTabChanged(String tabId) {
			   Log.i("Tab", tabId);
				
			}
		});
	}
}

运行后,效果如下:

android学习--TabHost选项卡组件_第1张图片



你可能感兴趣的:(Android)