软件编程
位置:首页>> 软件编程>> Android编程>> Android组件TabHost实现页面中多个选项卡切换效果

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

作者:lijiao  发布时间:2023-03-05 22:07:35 

标签: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(){

});
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com