android Tabhost的使用

1 xml 配置/res/layout

TabHost的id必须为 tabhost Framelayout的id必须为 tabcontentTabWidget的id必须为 tabs

TabHost,Framelayout,TRabWidge都是缺一不可的,

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/tabhost"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

   <LinearLayout
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <FrameLayout
         android:id="@android:id/tabcontent"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_weight="1"> <!--加上weight属性FrameLayout显示的内容不会覆盖掉TabWidget,不知道为什么 -->
         <LinearLayout android:id="@+id/tab2"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">

             <Button
                 android:id="@+id/button1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="Button" />
             
         </LinearLayout>
      </FrameLayout>
      <TabWidget
         android:id="@android:id/tabs"
         android:layout_width="fill_parent"
         android:layout_alignParentBottom="true"<!--网上说这个设置TabWidget在下方,我这边实验是完全和这个属性无关,eclipse也提示我这个属性是无效的 -->
         android:layout_height="wrap_content"/>
    </LinearLayout>
</TabHost>
2 java代码

public class MainActivity extends TabActivity  {
		TabHost tabs =null;
	    @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState); 
	        setContentView(R.layout.activity_main);
	        tabs =getTabHost();        
	      //设置Tab1    
	        TabSpec tab1 = tabs.newTabSpec("tab1");    
	        tab1.setIndicator("tab1");      // 设置tab1的名称    
	        tab1.setContent(R.id.tab2);    // 关联控件   //如果关联的控件不属于R.layout.activity_main 就是setContentView的参数的控件需要LayoutInflater.from(this).inflate(R.layout.a, tabs.getTabContentView(),true);执行这段代码
	        tabs.addTab(tab1);                // 添加tab1
	      //设置Tab1    
	        TabSpec tab2 = tabs.newTabSpec("tab1");    
	        tab2.setIndicator("tab1");      // 设置tab1的名称    
	        tab2.setContent(new Intent(this,LoginActivity.class));    // 关联控件,此控件是一个Activity
	        tabs.addTab(tab2); 
	        tabs.setCurrentTab(0);  //设置当前Tab
	    }
	
	    @Override
	    public boolean onCreateOptionsMenu(Menu menu) {
	        getMenuInflater().inflate(R.menu.activity_main, menu);
	        return true;
	    }
	
	    
	}


你可能感兴趣的:(android Tabhost的使用)