TabHost requires a TabWidget with id "android:id/tabs" 报错解决办法

最近使用了Android的tabHost控件,但是从网上拷贝代码的时候发现报错了。


报错信息是上面那个。


如题很简单,缺少了一个Tabweidge。


使用tabHost控件的时候要注意两点,第一,布局文件中的TabWidget的id必须定义为:android:id="@android:id/tabs",第二,FrameLayout的id必须定义为:android:id="@android:id/tabcontent" 其它控件没有限制,否则报错。


附上基本代码片段:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/TabHost01" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<LinearLayout android:layout_width="fill_parent"
		android:orientation="vertical" android:layout_height="fill_parent">
		<TabWidget android:id="@android:id/tabs"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content" />
		<FrameLayout android:id="@android:id/tabcontent"
			android:layout_width="fill_parent"
			android:layout_height="fill_parent">
			<LinearLayout android:id="@+id/LinearLayout1"
				android:layout_width="fill_parent"
				android:layout_height="wrap_content">
				<TextView android:text="one"
					android:id="@+id/TextView01" android:layout_width="wrap_content"
					android:layout_height="wrap_content">
				</TextView>
			</LinearLayout>
			<LinearLayout android:id="@+id/LinearLayout2"
				android:layout_width="wrap_content"
				android:layout_height="wrap_content">
				<TextView android:text="two"
					android:id="@+id/TextView02" android:layout_width="fill_parent"
					android:layout_height="wrap_content">
				</TextView>
			</LinearLayout>
			<LinearLayout android:id="@+id/LinearLayout3"
				android:layout_width="wrap_content"
				android:layout_height="wrap_content">
				<TextView android:text="three"
					android:id="@+id/TextView03" android:layout_width="fill_parent"
					android:layout_height="wrap_content">
				</TextView>
			</LinearLayout>
		</FrameLayout>
	</LinearLayout>
</TabHost>

其中最重要的是:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/TabHost01" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<LinearLayout android:layout_width="fill_parent"
		android:orientation="vertical" android:layout_height="fill_parent">
		<TabWidget android:id="@android:id/tabs"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content" />
		<FrameLayout android:id="@android:id/tabcontent"
			android:layout_width="fill_parent"
			android:layout_height="fill_parent">
	<span style="white-space:pre">		</span><!--插入内容-->
		</FrameLayout>
	</LinearLayout>
</TabHost>

这部分代码基本不要改,因为最重要的两个要求都在里面,然后只需要在插入内容里面插入LinearLayout就可以了。


别忘了最重要一点,每个LinearLayout都要一个专属的id,不可以空着不写,否则也会报错的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值