Tab用一个简单的应用程序接口的标签是集中的界面布局文件的同一页上的接口组件不同的标签。并计划将在主类集中的代码文件。这种方法的优点是,文件在项目数不会被添加,但是,假设Tab接口组件更个性化的标签。复杂,把它们集中放在同一个文件会造成日后程序维护上的困难。

我们已经学习过Intent对象的用法。这里我们就用Intent对象来建立Tab标签页接口。这个新的方法事实上是基于一个非常easy的概念,就是每个Tab标签页都相应到一个独立的Activity类。因此不同标签页的接口布局文件和程序代码都是各自独立,如此一来就能够降低接口布局文件和程序代码的复杂性,使它们易于阅读和维护。

(1)要完毕Tab标签接口须要一个TabHost组件。它负责管控整个Tab标签页的架构。TabHost组件下包括有两个组件:TabWidget组件和FrameLayout组件。TabWidget组件负责掌控全部的Tab标签,FrameLayout组件则负责显示每个Tab标签页的接口组件。

(2)建立Tab标签页接口有2种方法,一种是把每个Tab page内的接口组件都一齐写在同一个布局文件里。可是用不同的<LinearLayout>标签把不同的Tab page 内的接口组件分隔开来。还有一种方式是把每个Tab page内的接口组件都写成一个独立的接口布局文件,再利用Intent的方法把它载入到相应的Tab page中。这中方法须要用到Intent技术。

以下就来解说下第一种方法,为使用Intent对象做铺垫:

<TabHost xmlns:android="http://schemas.android.com/apk.res/android"
android:id="@+id/tabHost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Tab Widget android:id="@+id/tabs"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /> <!--TabWidget标签的id一定要设定成@android:id/tabs; FrameLayout标签的id一定要设定成@android:id/tabcontent--> <FrameLayout android:id="@+id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <LinearLayout android:id="@+id/tab1" android:orientaion="vertical"
android:layout_width="fill_parent"
android:layout_height="warp_content"
android:paddingTop="70dp"
> <!-- 第一个Tab page的接口组件--> </LinearLayout> <LinearLayout android:id="@+id/tab1" android:orientaion="vertical"
android:layout_width="fill_parent"
android:layout_height="warp_content"
android:paddingTop="70dp"
>
<!-- 第二个Tab page的接口组件-->
</LinearLayout> </FrameLayout>
</TabHost>

代码:

package tw.android;

import java.util.Calendar;
import android.app.*;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.*;
import android.widget.TabHost.TabSpec; public class TabPageDemo extends Activity{
//继承的类仍然是Activity private DatePicker mDatePik;
private TimePicker mTimePik;
private TextView mTxtResult;
private Button mBtnOk; privte Button mBtnOk; //创建新想Handler对象
private Handler mHandler=new Handler(); /**Called when the activity is first created */
@Override
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);
setContentView(R.layout.main); setupViewComponent();
} private void setupViewComponent(){ //从资源R中获取接口组件并设定属性
TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
tabHost.setup(); TabSpec spec=tabHost.newTabSpec("tab1");
spec.setContent(R.id.tab1);
spec.setIndicator("日期和时间",getResource().getDrawable(android.R.drawable.ic_lock_idle_alarm)
);
tabHost.addTab(spec); spec=tabHost.newTabSpec("tab2");
spec.setIndicator("ProgressBar Demo",getResource().getDrawable(android.R.drawable.ic_dialog_alert)
);
spec.setContent(R.id.tab2); tabHost.addTab(spec); tabHost.setCurrentTab(0);
//以下内容就是将原来的setupViewComponent()方法内的所有程序代码,程序启动时候载入的程序setCurrentTab(0),0代表第一个Tab page 。1代表地二个Tab page ,其它依次类推 } }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Tab选项卡界面(1)的更多相关文章

  1. 简单的方法实现仿微信底部的Tab选项卡界面

    在网上看了比较多的关于Tab的教程,发现都很杂乱.比较多的用法是用TitlePagerTabStrip和ViewPaper.不过TitlePagerTabStrip有个很大的缺陷,Tab里面的内容刚进 ...

  2. 基于CkEditor实现.net在线开发之路(4)快速布局,工具箱,模板载入,tab选项卡简单说明与使用

    上一章给常用的from表单控件属性页面,进行了简单说明和介绍,但是由于是在网页中做界面设计,操作肯定没有桌面应用程序方便,便捷,为了更方便的布局与设计,今天我主要说一下快速布局,工具箱,tab选项卡, ...

  3. Android UI 之 Tab类型界面总结

    Android 程序中实现Tab类型界面很常见,本人在做项目的时候也经常用到,所以想在这里总结一下,实现tab类型界面的几种方式,供大家参考.如有不对之处,欢迎大家指正! 一.TabActivity ...

  4. js用户管理中心tab切换界面模板

    效果体验:http://hovertree.com/texiao/js/27/ 效果图如下: 代码如下: <!DOCTYPE html> <html> <head> ...

  5. 可轮播滚动的Tab选项卡

    前段时间有试着搭建个后台主题ui框架,有用到可支持滚动的Tab选项卡,模仿着H+后台主题ui框架中的代码造轮子改造了下,可惜代码在公司,不能把代码外发出来(感觉这样被限制了很多,对于这样的公司没办法, ...

  6. android tab选项卡的使用

    项目做完了,写写博客,在项目中遇到的一些问题,或者是自己觉得很不错的东西.这一篇主要是想和大家分享一下我在项目中封装的一个东西,就是tab选项卡.先看看效果图: 我在网上看了很多有关选项卡的demo, ...

  7. js基础练习一之tab选项卡

    最近在学习前端,当然包括js,css,html什么的,在听课时做的一些小练习,记录下来: 实例一: --Tab选项卡-- <script type="text/javascript&q ...

  8. :target伪类制作tab选项卡

    :target伪类的作用是突出显示活动的HTML锚,下面是一个简单的例子: HTML代码: <div> <a href="#demo1">点击此处</ ...

  9. 工作当中实际运用(1)——tab选项卡

    不废话 直接上代码: tab选项卡 window.onload=function(){ var titles= document.getElementById('header-dh').getElem ...

随机推荐

  1. 2.3系列系统中不支持SimpleDateFormat作字段被序列化

    安卓问题记录:在2.3系列系统中不支持SimpleDateFormat作字段被序列化,使用时需要将SimpleDateFormat作临时变量使用.

  2. 使用Array和[]创建数组的区别

    原文 简书原文:https://www.jianshu.com/p/57a337d20aea 大纲 前言 对使用Array和[]创建数组的区别的解释 个人理解 前言 JS定义数组变量时,在不需要给定数 ...

  3. [D3] Convert Input Data to Output Values with Linear Scales in D3

    Mapping abstract values to visual representations is what data visualization is all about, and that’ ...

  4. python 标准库 —— io(StringIO)

    0. io流(io stream) 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  5. Flink执行时之流处理程序生成流图

    流处理程序生成流图 DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph). 什么是流图 流图(S ...

  6. php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)

    php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...

  7. Android EditText文本内容变化监听方法

    package com.google; import android.app.Activity; import android.os.Bundle; import android.text.Edita ...

  8. 【u028】数列的整除性

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 对于任意一个整数数列,我们可以在每两个整数中间任意放一个符号'+'或'-',这样就可以构成一个表达式, ...

  9. [React Router v4] Style a Link that is Active with NavLink

    We often need to be able to apply style to navigation links based on the current route. In React Rou ...

  10. JFinal redis cluster集群插件

    JFinal redis cluster集群插件 JFinal 框架到了2.1版本号,可是依旧仅仅支持redis的主从集群,没有看到Cluster集群的插件.笔者照着主从的插件方式,改了改,实现了个简 ...