Android Tabhost使用方法详解
作者:楊先生 发布时间:2023-10-02 12:46:46
标签:Android,Tabhost
Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多。
下面是我的XML源码:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/journals_list_one"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#FFFFFFFF"
android:scrollbars="vertical"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingRight="5dip"
android:background="#FFFFFFFF"
android:listSelector="@drawable/list_item_selecter"
/>
<ListView
android:id="@+id/journals_list_two"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#FFFFFFFF"
android:scrollbars="vertical"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingRight="5dip"
android:background="#FFFFFFFF"
/>
<ListView
android:id="@+id/journals_list_three"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#FFFFFFFF"
android:scrollbars="vertical"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingRight="5dip"
android:background="#FFFFFFFF"
/>
<ListView
android:id="@+id/journals_list_end"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#FFFFFFFF"
android:scrollbars="vertical"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingRight="5dip"
android:background="#FFFFFFFF"
/>
</FrameLayout>
这是JAVA源码:
private TabHost tabHost;
private ListView listView;
private MyListAdapter adapter;
private View footerView;
private List<Map<String, String>> data = new ArrayList<Map<String, String>>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tabHost = this.getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,
tabHost.getTabContentView(), true);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("",
getResources().getDrawable(R.drawable.home)).setContent(
R.id.journals_list_one));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("",
getResources().getDrawable(R.drawable.activity)).setContent(
R.id.journals_list_two));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("",
getResources().getDrawable(R.drawable.community)).setContent(
R.id.journals_list_three));
tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("",
getResources().getDrawable(R.drawable.shop)).setContent(
R.id.journals_list_end));
tabHost.setCurrentTab(0);
setContentView(tabHost);
tabHost.setOnTabChangedListener(tabChangeListener);
showContent();
}
让自己的类继承TabActivity,然后通过调用getTabHost()方法得到tabhost对象,然后把自己写好的数据展示的布局文件加载到tabhost中,就可以实现了。最后是通过调用addTab()方法添加标签的相关属性(如:标签名称,标签图片,标签内容布局)。
而如果通过XML文件配置tabHost则需要注意的是,framelayout,tabwidge标签的id都必须引用系统的id(@android:id/tabcontent,@android:id/tabs),不然会报异常.在程序用使用findViewById()加载tabhost,然后调用tabhost.setup()方法初始化tabhost,后面的步骤则和上面一种一样,就不在说明。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


猜你喜欢
- 本文实例为大家分享了Unity实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下一、演示二、实现思路创建每一个方块可移动到的位置点,可以
- CLR支持两种类型:引用类型和值类型。 引用类型总是从托管堆上分配的。 c#中的New操作符返回对象的内存地址。 引用对象的注意点: 1、内
- 当我们在登录像QQ邮箱这种大多数的网站,往往在登录按键上会有下次自动登录这个选项,勾选后登录成功,在一段时间内,即便退出浏览器或者服务器重启
- 本文实例讲述了C#中派生类调用基类构造函数用法。分享给大家供大家参考。具体分析如下:这里的默认构造函数是指在没有编写构造函数的情况下系统默认
- Android Notification 使用方法详解用TaskStackBuilder来获取PendingIntent处理点击跳转到别的A
- 前言通过ioctl跟binder驱动交互,实现以最快的方式唤醒新的保活服务,最大程度防止保活失败。同时,我也将跟您分享,我是怎么做到在不甚了
- 导读Spring Boot应用可以使用spring-boot-maven-plugin快速打包,构建一个可执行jar。Spring Boot
- 一、数组与数组元素Java中数组是引用类型数组的元素可以是基本类型也可以是引用类型,弄清数组元素的类型可以帮助我们去理解数组元素默认初始化二
- 1. 概述当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2. 解决的问题主要解决的是当控制一个对象状态转换的条件表
- 其实这个比较简单,子线程怎么通知主线程,就是让子线程做完了自己的事儿就去干主线程的转回去干主线程的事儿。那么怎么让子线程去做主线程的事儿呢,
- JFrame默认的窗体比较土,可以通过一定的美化,让窗体表现的比较漂亮,具体要根据设计的设计图进行美化;JFrame美化的大致思路:先将JF
- —学习并使用mybatis-plus的一些高级功能的用法例如: AR模式、 乐观锁 、逻辑删除 、自动填充、数据保护等功能为了方便演示,咱们
- 步骤:1、遍历D盘Source文件夹找出所有名称包含LTE的文件,文件路径存放到List<string>中2、遍历List<
- 为什么需要UI自动化测试?我有一个观点,对于重复的工作,那么程序都是可以代替的,我想这是作为一个程序员的一个基本素养(能偷懒的绝不干活)。U
- 一、基本概念Task优势ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便,例如:T
- 如何将ResultSet结果集遍历到List中今天在使用jstl标签展示查询结果时遇到一个小问题,即如何将ResultSet对象传递给前台页
- 我们开启一个线程,线程每隔一秒发送一次消息,我们在消息中更新TextView上显示的时间就ok了。首先我们在布局文件中放一个TextView
- 目录源码实现基本流程ThreadLoalMap数据结构Hash冲突及解决ThreadLocal内存泄露内存引用链路引用类型为什么使用弱引用而
- 泛型的概述和优势泛型概述泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。泛型的格式:<数据类型>;
- 前言今天收到一封邮件,大概内容如下:spring boot鼓励去配置化,那么怎么将第三方jar包中的xml去配置化了?其实,这个问题,在前面