欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android组件TabHost实现页面中多个选项卡切换效果

程序员文章站 2024-03-03 17:32:40
tabhost组件可以在界面中存放多个选项卡, 很多软件都使用了改组件进行设计。 一、基础知识 tabwidget : 该组件就是tabhost标签页中上部 或者 下部...

tabhost组件可以在界面中存放多个选项卡, 很多软件都使用了改组件进行设计。
一、基础知识
tabwidget : 该组件就是tabhost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡;
tabspec : 代表了选项卡界面, 添加一个tabspec即可添加到tabhost中;
-- 创建选项卡 : newtabspec(string tag), 创建一个选项卡;
-- 添加选项卡 : addtab(tabspec);

二、实例讲解
tabhost的基本使用,主要是layout的声明要使用特定的id号,然后activity继承tabactivity即可。

main.xml:

<tabhost xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@android:id/tabhost"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".main" >

  <linearlayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <tabwidget
      android:id="@android:id/tabs"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
    </tabwidget>

    <framelayout
      android:id="@android:id/tabcontent"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >

      <linearlayout
        android:id="@+id/tab1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <textview
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:text="aa" />
      </linearlayout>

      <linearlayout
        android:id="@+id/tab2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <textview
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:text="bb" />
      </linearlayout>
    </framelayout>
  </linearlayout>

</tabhost>

main.java:

package com.app.main;

import android.app.tabactivity;
import android.os.bundle;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.tabhost;
import android.widget.tabhost.ontabchangelistener;
import android.widget.tabhost.tabspec;
import android.widget.tabwidget;

public class main extends tabactivity {

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);

    final tabhost tabhost = this.gettabhost();

    tabspec tab1 = tabhost.newtabspec("tab1").setindicator("tab1")
        .setcontent(r.id.tab1);

    tabhost.addtab(tab1);

    tabspec tab2 = tabhost.newtabspec("tab2").setindicator("tab2")
        .setcontent(r.id.tab2);

    tabhost.addtab(tab2);


  }

}

实现效果:

Android组件TabHost实现页面中多个选项卡切换效果

其他:

当点击tabwidget的时候,若想注册事件监听器,可以使用:

1.调用

tabhost.setontabchangedlistener(new tabchangelistener(){

  public void ontabchanged(string id)

    {
    }

});

这个传入的id,就是tabwidget的indicator,这里是"tab1","tab2";

2.调用

tabwidget.getchildat(0).setonclicklistener(new onclicklistener(){


});

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。