你的位置:首页 > 软件开发 > 操作系统 > TabHost理解与使用

TabHost理解与使用

发布时间:2016-06-19 20:00:11
一.继承关系java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ android.widget.Ta ...

一.继承关系

java.lang.Object   ↳ 	android.view.View  	  ↳ 	android.view.ViewGroup  	 	  ↳ 	android.widget.FrameLayout  	 	 	  ↳ 	android.widget.TabHost

 

二.概述

TAB的容器。这个对象包含两个子元素:

  1. TabWidget:管理标签(tabs),用户点击来选择一个特定的标签,是它告诉TabHost去切换界面的
  2. FrameLayout:对象显示该页的内容

 

三.常用方法

  1. public void addTab(TabHost.TabSpec tabSpec)
  2. public void setup ():在addTab之前要先调用setup

四.三个内部类

  1. class:TabHost.TabSpec
  2. interface:TabHost.OnTabChangeLisetener
  3. interface:TabHost.TabContentFactory

TabHost.TabSpec

tab(标签)有一个indicator,content后台tag.例如:

tabHost.addTab(tabHost.newTabSpec("tab_time").setIndicator("时钟").setContent(R.id.tab_time));

1.indicator

有三个重载的方法可以设置标签的名字和图案。返回值都是TabHost.TabSpec

  1. setIndicator(CharSequence label)
  2. setIndicator(View view)
  3. setIndicator(CharSequence lable,Drawable icon)

content

返回值都是TabHost.TabSpe。是第一个比较常用。

  1. **setContent(int viewId)**传入视图的ID与之关联起来
  2. setContet(Intent intent)在TabHost.TabContentFactory创建的这个视图的内容
  3. setContent((TabHost.TabContentFactory contentFactory)

tag

这是相当于一个tag的身份证,在 new TabSpec(String tag)决定了

 

五.例子

http://www.cnblogs.com/Mihai/

 

六.源码大观

public class TabHost...{  //常用属性  private TabWidget mTabWidget;  private FrameLayout mTabContent;  private List<TabSpec> mTabSpecs = new ArrayList<TabSpec>(2);  private OnKeyListener mTabKeyListener;  public void setup(){    //这里实例化TabWiget    mTabWidget = (TabWidget) findViewById(com.android.internal.R.id.tabs);    if (mTabWidget == null) {      throw new RuntimeException(          "Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabs'");    }    ....    mTabWidget.setTabSelectionListener(new TabWidget.OnTabSelectionChanged() {      public void onTabSelectionChanged(int tabIndex, boolean clicked) {        setCurrentTab(tabIndex);        if (clicked) {          mTabContent.requestFocus(View.FOCUS_FORWARD);        }      }    });    mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent);    if (mTabContent == null) {      throw new RuntimeException(          "Your TabHost must have a FrameLayout whose id attribute is "              + "'android.R.id.tabcontent'");    }  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:TabHost理解与使用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录