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); } }
实现效果:
其他:
当点击tabwidget的时候,若想注册事件监听器,可以使用:
1.调用
tabhost.setontabchangedlistener(new tabchangelistener(){ public void ontabchanged(string id) { } });
这个传入的id,就是tabwidget的indicator,这里是"tab1","tab2";
2.调用
tabwidget.getchildat(0).setonclicklistener(new onclicklistener(){ });
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。
上一篇: Python使用win32com实现的模拟浏览器功能示例
下一篇: python实现杨辉三角思路