2010-10-08 15:24:39 |分类: Android |标签: tabhost tabwidget fill_parent android intent | 字号 订阅


步骤

1.建立两个Activity,作为tab内容 (我这里是OneActivity、TestActivity)

public class OneActivity extends Activity {    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);         TextView textview = new TextView(this);        textview.setText("This is the Artists tab");        setContentView(textview);    }}

2.在layout文件夹中建立tab.xml用于怎样显示tab页面

注意:TabHost ,TabWidget ,FrameLayout的ID必须分别为@android:id/tabhost,@android:id/tabs,@android:id/tabcontent
另 外还要注意一下android:layout_width宽度和android:layout_height高度的取值,还要LinearLayout的 android:orientation=”vertical”(LinearLayout默认是横向的)当你看到布局和我不一样时你就要考虑一下这里是 不是错了。(= =!因为我错过)

<?xml version="1.0" encoding="utf-8"?><TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  >  <TabWidget android:id="@android:id/tabs"   android:layout_width="fill_parent" android:layout_height="wrap_content"></TabWidget>   <FrameLayout            android:id="@android:id/tabcontent"            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:padding="5dp" /> </LinearLayout> </TabHost> 

3.新建一个类TabWidget.java,继承TabActivity类

package com.fatkun; import android.app.TabActivity;import android.content.Intent;import android.content.res.Resources;import android.os.Bundle;import android.widget.TabHost;import android.widget.TabHost.TabSpec; public class TabWidget extends TabActivity {  /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.tab);//这里使用了上面创建的xml文件(Tab页面的布局)     Resources res = getResources(); // Resource object to get Drawables     TabHost tabHost = getTabHost();  // The activity TabHost     TabSpec spec;     Intent intent;  // Reusable Intent for each tab    //第一个TAB     intent = new Intent(this,OneActivity.class);//新建一个Intent用作Tab1显示的内容     spec = tabHost.newTabSpec("tab1")//新建一个 Tab     .setIndicator("Tab1", res.getDrawable(android.R.drawable.ic_media_play))//设置名称以及图标     .setContent(intent);//设置显示的intent,这里的参数也可以是R.id.xxx     tabHost.addTab(spec);//添加进tabHost      //第二个TAB     intent = new Intent(this,TestActivity.class);//第二个Intent用作Tab1显示的内容     spec = tabHost.newTabSpec("tab2")//新建一个 Tab     .setIndicator("Tab2", res.getDrawable(android.R.drawable.ic_menu_camera))//设置名称以及图标     .setContent(intent);//设置显示的intent,这里的参数也可以是R.id.xxx     tabHost.addTab(spec);//添加进tabHost      tabHost.setCurrentTab(1); } }

4.最后一步,在AndroidManifest.xml加入你的Activity

android:theme=”@android:style/Theme.NoTitleBar”是可以使得TabWidget窗口没有标题,多点空间显示

<activity android:name="TabWidget" android:theme="@android:style/Theme.NoTitleBar"></activity>     <activity android:name="OneActivity"></activity>     <activity android:name="TestActivity"></activity> 

1、选项卡中的布局如果想从setContextView(R.layout.tab)指定,那么xml配置文件应该如下编写:
<?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">
<!-- 如果代码中使用setContextView()指定布局文件,必须加入该控件的声明,否则无法运行!而且TabWidget后需要使用Framelayout布局 -->
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
..................................
这样才可以。
2、如果在代码中不采取setContextView()方式加载布局,则在程序,动态选择布局:
TabHost mTobHost=getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,mTobHost.getTabContentView(),true);
mTobHost.addTab(mTobHost.newTabSpec("---tab1").setIndicator("TAB1").setContent(R.id.txtOne));
mTobHost.addTab(mTobHost.newTabSpec("---tab2").setIndicator("TAB2").setContent(R.id.txtTwo));
mTobHost.addTab(mTobHost.newTabSpec("---tab3").setIndicator("TAB3").setContent(R.id.txtThree));
mTobHost.setCurrentTab(0);
这样完成。
如果想实现采取第一种方式实现选项卡位于屏幕的下方,将布局方式为RelativeLayout,同时设置TabWidget的 android:layout_alignParentBottom="true"。


转自于:http://hi.baidu.com/%B0%AC%B0%AC%C1%DC%C1%DC/blog/item/6570a33723833c86a61e12b3.html

更多相关文章

  1. Android很有用的代码片段
  2. Android中使用全屏
  3. android小demo笔记
  4. 经典button布局
  5. Android隐藏标题栏,全屏显示
  6. Android(安卓)Studio 3.0 Canary 8无法安装apk到小米手机
  7. Android通过onDraw实现在View中绘图操作
  8. Arcgis for android 离线查询
  9. Android之使用摄像头拍照

随机推荐

  1. android学习—— 简单的实现 android 退
  2. ViewGroup measure layout
  3. Button监听方式
  4. Android(安卓)2.2 r1 API 中文文档系列(11
  5. MediaProvider流程分析
  6. 怎么让我们自己开发的Android程序设为默
  7. android 纯代码 详细编写布局文件
  8. 遇到问题描述:Android(安卓)Please ensure
  9. android Theme使用三
  10. android锁屏