我有一个片段,我试图添加到一个视图。

FragmentManager fragMgr=getSupportFragmentManager();
feed_parser_activity content = (feed_parser_activity)fragMgr
                                    .findFragmentById(R.id.feedContentContainer);
FragmentTransaction xaction=fragMgr.beginTransaction();

if (content == null || content.isRemoving()) {
    content=new feed_parser_activity(item.getLink().toString());
    xaction
        .add(R.id.feedContentContainer, content)
        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
        .addToBackStack(null)
        .commit();
    Log.e("Abstract", "DONE");
}

当这段代码执行时,我在调试中得到以下错误。

java.lang.IllegalArgumentException: No view found for id 0x7f080011 
   for fragment feed_parser_activity{41882f50 #2 id=0x7f080011}

feed_parser_activity是一个片段,在xml中被设置为片段布局。 我使用FragmentActivity来托管持有feed_parser_layout的片段布局。 我上面写的对吗?


当前回答

我也得到了同样的错误,然后,我意识到问题是。add(R.id.CONTAINERNAME)所以基本上我给了id = CONTAINERNAME在错误的xml .. 因此,解决方案是首先检查你已经给出了id = CONTAINERNAME在xml中,你想要显示的片段。 还要注意,我试图调用片段形式的活动.. 我希望这样的小错误能解决问题

参考2020年最新版本的android

其他回答

当你没有在app_bar_main.xml中放入<include layout="@layout/your_fragment_layout"/>时,也会发生这个问题

当你从一个片段中调用另一个片段时,就会发生这种情况。

使用:

getActivity().getSupportFragmentManager().beginTransaction();

我的错误在于FragamentTransaction。

我在做t。replace(r。layout。mylayout);代替t.replace(R.id.mylayout);

区别在于一个是布局,另一个是对布局的引用(id)

正如https://stackoverflow.com/users/2075875/malachiasz所言

这个解决方案实际上是可行的

getChildFragmentManager().beginTransaction().replace(R.id.cpu_bottomNav_frame,new fragment()).commit();

只需添加viewPager。setOffscreenPageLimit(页面数量);