import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
public class TabHostTestttActivity extends Activity {
//Tab三要素
TabHost tabHost=null;
TabWidget tabWidget=null;
FrameLayout fl=null;
//view0用来盛放view1、view2、view3
RelativeLayout view0=null;
LinearLayout view1=null;//view1用来装入tabWidget
LinearLayout view2=null;//view2用来盛放fl
RelativeLayout view3=null;//view3用来盛放其他
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//第一步,定义tabHost
tabHost=new TabHost(this);
LinearLayout.LayoutParams lp_tabHost=new LinearLayout.LayoutParams( -1,-1);
tabHost.setLayoutParams(lp_tabHost);
//第二步,定义tabWidget、view1
tabWidget=new TabWidget(this);
tabWidget.setId(android.R.id.tabs);//注意ID的设置
tabWidget.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
view1=new LinearLayout(this);
view1.setId(10);
RelativeLayout.LayoutParams lp_view1=new RelativeLayout.LayoutParams(-2,-2);
view1.setLayoutParams(lp_view1);
view1.setOrientation(LinearLayout.VERTICAL);
TextView tvxxx=new TextView(this);
tvxxx.setId(100);
tvxxx.setText("测试测试测试");
tvxxx.setTextColor(Color.WHITE);
tvxxx.setBackgroundColor(Color.BLUE);
LinearLayout.LayoutParams lp_tvxxx=new LinearLayout.LayoutParams(-2,-2);
tvxxx.setLayoutParams(lp_tvxxx);
view1.addView(tvxxx);
view1.addView(tabWidget);
//第三步,定义fl、view2
fl=new FrameLayout(this);
fl.setId(android.R.id.tabcontent);//注意ID的设置
fl.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
TextView tv1=new TextView(this);
tv1.setId(55);
//更改个字体颜色
tv1.setTextColor(Color.YELLOW);
tv1.setText("窗前明月光\n疑是地上霜\n举头望明月\n低头思故乡");
TextView tv2=new TextView(this);
tv2.setId(66);
tv2.setTextColor(Color.WHITE);
tv2.setText("春眠不觉晓\n处处闻啼鸟\n以来风雨声\n花落知多少");
fl.addView(tv1);
fl.addView(tv2);
//定义view2
view2=new LinearLayout(this);
view2.setId(20);
RelativeLayout.LayoutParams lp_view2=new RelativeLayout.LayoutParams(-2,-2);
view2.setLayoutParams(lp_view2);
view2.setOrientation(LinearLayout.HORIZONTAL);
view2.setGravity(Gravity.CENTER_VERTICAL);
TextView tvyyy=new TextView(this);
tvyyy.setId(200);
tvyyy.setText("内容");
view2.addView(tvyyy);
view2.addView(fl);
//第四步,定义view3
view3=new RelativeLayout(this);
view3.setId(30);
RelativeLayout.LayoutParams lp_view3=new RelativeLayout.LayoutParams(-2,-2);
view3.setLayoutParams(lp_view3);
TextView tvzzz=new TextView(this);
tvzzz.setId(300);
tvzzz.setText("居中居中居中居中");
view3.addView(tvzzz);
//第五步,定义view0
view0=new RelativeLayout(this);
view0.setId(1);
RelativeLayout.LayoutParams lp_view0=new RelativeLayout.LayoutParams(-1,-1);
view0.setLayoutParams(lp_view0);
//添加view1、2、3
lp_view1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp_view1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
view0.addView(view1,lp_view1);
lp_view2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
lp_view2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
view0.addView(view2,lp_view2);
lp_view3.addRule(RelativeLayout.CENTER_IN_PARENT);
view0.addView(view3,lp_view3);
//第六步,tabHost添加view0
tabHost.addView(view0);
//同样,以上五步之后,才能调用setup()
tabHost.setup();
//重点:此步骤只能在setup()之后进行
tabHost.addTab(tabHost.newTabSpec("tag1").setIndicator("静夜思").setContent(55));
tabHost.addTab(tabHost.newTabSpec("tag2").setIndicator("春晓",this.getResources().getDrawable(R.drawable.ic_launcher)).setContent(66));
setContentView(tabHost);
}
}
其实最重要的就是在正确的地方调用setup()了。
TabWidget嵌套的话,则tab的内容就要转向Activity了。