实现:继承viewgroup,实现tab,系统默认view不能舍弃,定义layout。
1、将"@android:id/tabs" gone,重定义framelayout并addview以实现tab按钮
<TabHost android:id="@+id/common_tab_layout_host"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:visibility="gone" />
<FrameLayout android:id="@+id/common_tab"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<!-- <View -->
<!-- android:layout_width="fill_parent" android:layout_height="2dip" />-->
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1" android:visibility="visible">
</FrameLayout>
</LinearLayout>
</TabHost>
2、监听tabhost。
mTabHost = (TabHost) findViewById(R.id.common_tab_layout_host);
mTabHost.setup(getLocalActivityManager());
加入tab响应intent.
private void addTabToTabHost(Context context, CommonTabBean bean) {
if (null != mTabHost) {
mTabHost.addTab(mTabHost.newTabSpec(bean.beanTitle)
.setIndicator(bean.beanTitle)
.setContent(new Intent(context, bean.beanCls)));
}
}
3、界面显示 FrameLayout android:id="@android:id/tabcontent" 出现黑色的overlay, 如果将@android:id/tabcontent gone掉则完全正常, 是否可能是activity属性出现问题?而此时activity的theme是
android:theme="@android:style/Theme.NoTitleBar"
4、重定义theme
<style name="ActivityNoTitle" parent="android:style/Theme.NoTitleBar">
<item name="android:windowContentOverlay">@null</item>
</style>
效果ok