Android组件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); } }

实现效果:

其他:

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

1.调用

tabHost.setOnTabChangedListener(new TabChangeListener(){ public void onTabChanged(String id) { } });

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

2.调用

tabWidget.getChildAt(0).setOnClickListener(new OnClickListener(){ });

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

时间: 2024-10-27 20:59:30

Android组件TabHost实现页面中多个选项卡切换效果的相关文章

CSS3中target实现选项卡切换效果

:target是什么? MDN是这样描述的::target The :target pseudo-class represents the unique element, if any, with an id matching the fragment identifier of the URI of the document. 在document中,可以设置锚链接,举个粟子: <a href="#tab">Test :target</a> <a href

Android实现在列表List中显示半透明小窗体效果的控件用法详解_Android

本文实例讲述了Android实现在列表List中显示半透明小窗体效果的控件用法.分享给大家供大家参考,具体如下: Android 在列表List中显示半透明小窗体效果的控件,多的不多直接上代码,要说的都在注释里了: import com.hiapk.market.R; import android.content.Context; import android.graphics.PixelFormat; import android.os.Handler; import android.view

android 开发-android开发 怎么实现 微信中 右滑删除的效果

问题描述 android开发 怎么实现 微信中 右滑删除的效果 默认是这样 右滑出来一个按钮,有时会有二个按钮,同时左边的布局跟着一起动看起来是一体的 同上,每个Item都有这个效果,是onTouch事件,因该要跟据坐标一重绘布局 如上图中的效果,是微信中的,不知是怎么搞的,因该不是抽屉吧,好像要通过自定义ViewGroup去实现,控制滑动到右边布局的位置,但我没用过ViewGroup不会用纠结好些天了,网上到处找也没找到例子,源码又看不懂,求人给个Demo.

Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”

ANDROID 一.首先是返回正在运行的程序,而不是新的ACTIVITY. 多网上关于 通知栏的例子都是打开一个新的Activity,代码也很多.根据那些代码如下    public void shownotification(String tab)    {        NotificationManager barmanager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);        Notif

Android开发之使用ViewPager实现图片左右滑动切换效果_Android

Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~: 使用了3个xml文件作为ViewPager的滑动page,布局都是相同的,如下只展示其中之一: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

Android多个TAB选项卡切换效果_Android

在前一期中,我们做了悬浮头部的两个tab切换和下拉刷新效果,后来项目中要求改成三个tab,当时就能估量了一下,如果从之前的改,也不是不可以,但是要互相记住的状态就太多了,很容易出现错误.就决定重新实现一下这个效果,为此先写了一个demo,这期间项目都已经又更新了两个版本了.demo还木有变成文章. 之前的版本中是采用了一个可以下拉刷新的listview,之后在listview中添加了两个头部,并且在该布局上的上面用了一个一模一样的切换tab,如果没有看过前面版本的,可以看看前一个版本,Listv

Android开发之使用ViewPager实现图片左右滑动切换效果

Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~: 使用了3个xml文件作为ViewPager的滑动page,布局都是相同的,如下只展示其中之一: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

js中常用的Tab切换效果(推荐)_javascript技巧

如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab</title> <style> *{margin:0; padding:0; list-style:none;} .box{ width: 1000px; overflow: hidden; margin:100px auto

javabean组件在jsp页面中的应用方法

javabean组件在jsp教程页面中的应用方法 一,bean技术基础 1)jsp:usebean <jsp:usebean id="beanname" class="package.class"  /> 构建一个新的bean.例如: <jsp:usebean id="book1" class="coreservlets.book" /> 等价于下列jsp语句---- <% coreservlet