无法在片段的onCreateView中扩充布局

时间:2015-01-22 09:57:17

标签: android android-fragments layout-inflater

在我的MenuContentActivity中,我将IntercomFragment称为如下:

IntercomFragment myContent= IntercomFragment.newInstance(index);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(android.R.id.content, myContent, "intercomFrag").commit();

然后在我的IntercomFragment中,我尝试给布局“内部通信”充气,但它失败了!它抛出“java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myapp/com.mycompany.myapp.MenuContentActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030030

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View mainView = inflater.inflate(R.layout.intercom, container, false);
......
......
......
}

inflater.inflate失败。 R.layout.intercom exsits, intercom.xml 已在布局目录中。 我可以用同样的方式调用和显示我的其他片段,但我不明白为什么我不能以相同的方式调用和显示IntercomFragment。 什么是这个错误,任何想法?

1 个答案:

答案 0 :(得分:0)

我意识到我的应用程序在landspace模式下没有崩溃,然后我怀疑是intercom布局本身。

布局包含<include layout=""......\>

的其他布局

我意识到其中一个包含的布局只有landspace文件(在layout-land文件夹中)。所以我想因为加载布局文件时它无法找到所包含布局的portrait版本,所以它失败了。

我刚刚添加了缺少的布局文件,现在就解决了!