您的位置:首页 > 移动开发 > Android开发

android4.0 FragmentTabHost tabs在底部 仿qq界面

2016-05-04 12:13 337 查看
首先吐槽下官网, http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html ,这里居然没给出xml的配置,导致一直弄了很久。而百度搜索到的大部分都是这个配置,不只是否是版本升级的原因,我按照这个配置,运行就会报错:java.lang.RuntimeException: Your TabHost must have a FrameLayout whose id attribute is 'android.R.id.tabcontent'



各种尝试,最后发现只有下面这个代码能运行,但是tabs是在顶部的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
</android.support.v4.app.FragmentTabHost>

</LinearLayout>

最后只好谷歌了,发现了国外的大神的一个配置,就是FragmentTabHost里面什么都没放置。下面是我自己写的配置,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<!-- 把FragmentLayout放在FragmentTabHost上面,这样tabs就在底部了,注意,id要自己添加了
android:id="@+id/realtabcontent"
-->
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />

<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="150px"
>
</android.support.v4.app.FragmentTabHost>

</LinearLayout>

这个配置运行成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: