TabLayout简单例子
2012-03-28 14:33
89 查看
要生成一个Tab UI需要用到两个类,一个是TabHost,一个是TabWidget. TabWidget是用来显示标签栏的,内嵌在TabHost里面。
首先创建以TabHost为根节点的XMl布局文件:
生成三个对应于标签内容的Activity:
PictureActivity:
TextActivity:
EditActivity:
主要的Activity:
TabWidget会在TabHost调用addTab()时候,系统自动将新增的Tab加进TabWidget中,这个不用我们来操作。
首先创建以TabHost为根节点的XMl布局文件:
<?xml version="1.0" encoding="utf-8"?> <!-- 将Layout的XML文件的根节点设置为TabHost,并且id要为Android内置的id:@android:id/tabhost --> <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" > <!-- 将TabHost里面的布局设置为线性布局 --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp" > <!-- 设置TabHost里面的TabWidget,放置标签,id要设置为Android内置的id: @android:id/tabs --> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TabWidget> <!-- 设置TabHost里面的FrameLayout,放置内容,id设置为Android是内置id: @android:id/tabcontent --> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> </LinearLayout> </TabHost>
生成三个对应于标签内容的Activity:
PictureActivity:
public class PictureActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { System.out.println("PictureActivity--->onCreate"); super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); ImageView imgView = new ImageView(this); imgView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); imgView.setImageResource(R.drawable.girl); layout.addView(imgView); setContentView(layout); } }
TextActivity:
public class TextActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { System.out.println("TextActivity--->onCreate"); super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); TextView textView = new TextView(this); textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); textView.setText("你好,这是个美女信息"); layout.addView(textView); setContentView(layout); } }
EditActivity:
public class EditActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { System.out.println("EditActivity--->onCreate"); super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); EditText edit = new EditText(this); edit.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); layout.addView(edit); setContentView(layout); } }
主要的Activity:
public class MyTab extends TabActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 得到xml里面定义的TabHost TabHost host = getTabHost(); // 开始生成三个标签,分别对应PictureActivity,TextActivity,EditActivity TabHost.TabSpec label1 = host.newTabSpec("picture"); // 设置标签的图片及信息 label1.setIndicator("相片", getResources().getDrawable(R.drawable.label1)); // 设置便签对应显示内容 label1.setContent(new Intent(this, PictureActivity.class)); host.addTab(label1); // 同样设置另外两个标签 TabHost.TabSpec label2 = host.newTabSpec("information"); label2.setIndicator("个人信息", getResources().getDrawable(R.drawable.label2)); label2.setContent(new Intent(this, TextActivity.class)); host.addTab(label2); TabHost.TabSpec label3 = host.newTabSpec("edit"); label3.setIndicator("编辑", getResources().getDrawable(R.drawable.label3)).setContent(new Intent(this, EditActivity.class)); host.addTab(label3); host.setCurrentTab(0); } }
TabWidget会在TabHost调用addTab()时候,系统自动将新增的Tab加进TabWidget中,这个不用我们来操作。
相关文章推荐
- TabLayout简单例子
- sh守护PHP简单例子,指定cpu,指定进程数
- Java最简单的UDP收发数据的例子
- spring mvc(注解)上传文件的简单例子
- 一个简单的ajax请求例子
- 最简单的基于FFmpeg的内存读写的例子:内存转码器
- 由浅入深学习自定义控件(2)-直接继承View的简单例子
- 简单说说:ognl表达式语言和EL表达式语言的区别(无代码例子)
- COM一个简单的例子
- 简单的一个jsr75例子--浏览本机文件夹及文件
- 今天又哥哥问俺php 全局变量的使用问题了,俺在这里发个简单的例子
- 函数对象 及 简单的小例子
- Linux 自虐之路(三): 一个简单的TCP通信例子
- iText输出PDF翻页控制简单例子
- 自适应游标共享技术02(一个简单的例子来走近ACS)
- robot简单功能测试脚本设计(例子)
- 图片上传(加水印、缩略图、远程保存)的简单例子
- Java简单上传图片例子
- sql存储过程几个简单例子
- MySql最简单的触发器例子