Tab选项卡界面(1)
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)的更多相关文章
- 简单的方法实现仿微信底部的Tab选项卡界面
在网上看了比较多的关于Tab的教程,发现都很杂乱.比较多的用法是用TitlePagerTabStrip和ViewPaper.不过TitlePagerTabStrip有个很大的缺陷,Tab里面的内容刚进 ...
- 基于CkEditor实现.net在线开发之路(4)快速布局,工具箱,模板载入,tab选项卡简单说明与使用
上一章给常用的from表单控件属性页面,进行了简单说明和介绍,但是由于是在网页中做界面设计,操作肯定没有桌面应用程序方便,便捷,为了更方便的布局与设计,今天我主要说一下快速布局,工具箱,tab选项卡, ...
- Android UI 之 Tab类型界面总结
Android 程序中实现Tab类型界面很常见,本人在做项目的时候也经常用到,所以想在这里总结一下,实现tab类型界面的几种方式,供大家参考.如有不对之处,欢迎大家指正! 一.TabActivity ...
- js用户管理中心tab切换界面模板
效果体验:http://hovertree.com/texiao/js/27/ 效果图如下: 代码如下: <!DOCTYPE html> <html> <head> ...
- 可轮播滚动的Tab选项卡
前段时间有试着搭建个后台主题ui框架,有用到可支持滚动的Tab选项卡,模仿着H+后台主题ui框架中的代码造轮子改造了下,可惜代码在公司,不能把代码外发出来(感觉这样被限制了很多,对于这样的公司没办法, ...
- android tab选项卡的使用
项目做完了,写写博客,在项目中遇到的一些问题,或者是自己觉得很不错的东西.这一篇主要是想和大家分享一下我在项目中封装的一个东西,就是tab选项卡.先看看效果图: 我在网上看了很多有关选项卡的demo, ...
- js基础练习一之tab选项卡
最近在学习前端,当然包括js,css,html什么的,在听课时做的一些小练习,记录下来: 实例一: --Tab选项卡-- <script type="text/javascript&q ...
- :target伪类制作tab选项卡
:target伪类的作用是突出显示活动的HTML锚,下面是一个简单的例子: HTML代码: <div> <a href="#demo1">点击此处</ ...
- 工作当中实际运用(1)——tab选项卡
不废话 直接上代码: tab选项卡 window.onload=function(){ var titles= document.getElementById('header-dh').getElem ...
随机推荐
- LLRB——红黑树的现代实现
一.本文内容 以一种简明易懂的方式介绍红黑树背后的逻辑实现2-3-4树,以及红黑树的插入.删除操作,重点在2-3-4树与红黑树的对应关系上,并理清红黑树相关操作的来龙去脉.抛弃以往复杂的实现,而分析红 ...
- js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据)
js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据) 一.总结 1.ajax的浏览器的window对象的XMLHtmlRequest对象的两个重要方法:open(),se ...
- Python 标准库 —— glob
glob库是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用 windows 下的文件搜索差不多.查找文件只用到三个匹配符: "*", 匹配 0 个或多个 ...
- Objective-C基础笔记(8)Foundation经常使用类NSString
一.创建字符串的方法 void stringCreate(){ //方法1 NSString *str1 = @"A String!"; //方法2 NSString *str2 ...
- Linux下使用Python的Tkinter库出现的No module named _tkinter问题
这是由于python的版本没有包含tkinter的模块,只需要把tk的package安装就可以了. 一般在linux才出现,windows版本一般已经包含了tkinter模块.
- Mac OSX 下配置 LNMP开发环境
不久前负责了一个项目需要配置PHP7的开发环境,因为之前所有的项目用的是PHP5的,所以研究了这些东西,但是很遗憾,电脑出了问题,不得已重装了系统,然后你懂得...什么都没有了,要重新来过.. 虽然本 ...
- ZBar 是款桌面电脑用条形码/二维码扫描工具
ZBar 是款桌面电脑用条形码/二维码扫描工具 windows平台python 2.7环境编译安装zbar 最近一个项目需要识别二维码,找来找去找到了zbar和zxing,中间越过无数坑,总算基本 ...
- python3 numpy API练习代码
# -*- coding: utf-8 -*- import numpy as np; a=np.array([1,2,3,4,5,6]); print("数组是:",a) #数组 ...
- 验证redis的快照和AOF
http://blog.csdn.net/lichangzai/article/details/8692103 redis持久化简介: redis是一个支持持久化的内存数据库,也就是说redis需要经 ...
- Delphi 7验证XML合法性(利用DTD、XSD)
拥有正确语法的XML被称为“形式良好”的XML.通过DTD验证的XML是“合法”的XML.DTD(文档类型定义)的作用是定义XML 文档的合法构建模块.它使用一系列的合法元素来定义文档结构.XML S ...