Android常用控件之FragmentTabHost的使用

    最近在学TabHost时发现TabActivity在API level 13以后不用了,所以就去寻找它的替换类,找到FragmentActivity,可以把每个Fragment作为子tab添加到FragmentActivity上。tab可以放在最上面也可以放在最下面


由以下布局文件main.xml的位置决定



    
    
    
    
    
        
        
    
    



创建一个类继承FragmentActivity

package com.example.tabhostdemo;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.View;
import android.widget.TextView;

import com.example.tabhost.FirstFragment;
import com.example.tabhost.ThirdFragment;
import com.example.tabhost.secondFragment;

public class MainActivity extends FragmentActivity {

	private FragmentTabHost mTabHost = null;;
	private View indicator = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.main);

		mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
		mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

		// 添加tab名称和图标
		indicator = getIndicatorView("我的联系人", R.layout.mycontact_indicator);
		mTabHost.addTab(mTabHost.newTabSpec("myContact")
				.setIndicator(indicator), FirstFragment.class, null);

		indicator = getIndicatorView("陌生人", R.layout.strangercontact_indicator);
		mTabHost.addTab(
				mTabHost.newTabSpec("stranger").setIndicator(indicator),
				secondFragment.class, null);

		indicator = getIndicatorView("常联系人", R.layout.alwayscontact_indicator);
		mTabHost.addTab(
				mTabHost.newTabSpec("alwaysContact").setIndicator(indicator),
				ThirdFragment.class, null);
	}

	private View getIndicatorView(String name, int layoutId) {
		View v = getLayoutInflater().inflate(layoutId, null);
		TextView tv = (TextView) v.findViewById(R.id.tabText);
		tv.setText(name);
		return v;
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		mTabHost = null;
	}
}
第一个Tab的布局文件    存放两张图片,字体颜色

alwayscontact_indicator.xml文件




    


mycontact_selector.xml文件


	
	
	
	
	
	
	
	
	
		


tabitem_txt_sel.xml文件


	
	
	
	
	
	
	
	
	
		
其它的tab文件定义也是类似的,看下最后的效果图

Android常用控件之FragmentTabHost的使用_第1张图片


样例代码

点击打开链接


你可能感兴趣的:(Android基础)