技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 移动开发 > android > 正文

No tab content framelayout found by id XXX

来源: 技术CTO 阅读:

想完成一个类似于QQ微信之类主页面底部状态栏的切换,用的fragmenttabhost实现,但是只是跟随谷歌和网上的一些基本示例做也是报出来一个google了半天解决不了的问题。组织语言能力比较差,还是上代码吧
MainActivity

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.widget.TabHost.TabSpec;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FragmentTabHost tabhost = (FragmentTabHost)findViewById(android.R.id.tabhost);
        tabhost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

        TabSpec spec = tabhost.newTabSpec("chat");
        spec.setIndicator("Chat");

        tabhost.addTab(spec, MyFragment.class, null);
    }
}


activity_main

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

    <FrameLayout
        android:id="@+id/realtabcontent"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
    </FrameLayout>


    <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:background="#FFF1F1F1" >
        </TabWidget>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp">
        </FrameLayout>

    </android.support.v4.app.FragmentTabHost>

</LinearLayout>


报出的错误是<字数所限,就只截下具体错误>

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.administrator.chat/com.example.administrator.chat.MainActivity}: java.lang.IllegalStateException: No tab content FrameLayout found for id 2131492969
                                                              com.example.administrator.chat.MainActivity.onCreate(MainActivity.java:16

debugging是找不到

tabhost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);


这里的R.id.realtabcontent这个framelayout的id

在fragmenttabhost.java中mContainerId为null,所以报错:

private void ensureContent() {
        if (mRealTabContent == null) {
            mRealTabContent = (FrameLayout)findViewById(mContainerId);
            if (mRealTabContent == null) {
                throw new IllegalStateException(
                        "No tab content FrameLayout found for id " + mContainerId);
            }
        }
    }


小白网上找了很久都没有找到问题根源,希望各位帮帮忙
换v4包就可以了
删除
<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFF1F1F1" >
        </TabWidget>

试试
我刚刚和遇到这问题,更换v4包就好了!
删除
<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFF1F1F1" >
        </TabWidget>

好像可以,和楼上一样的!
哪里换V4包呀
大神们这个问题解决了吗
同求android studio在哪更换v4包
楼主解决了吗?怎么解决

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^