找不到ID xxx的片段(嵌套片段)

时间:2013-08-23 21:09:48

标签: android android-fragments android-nested-fragment

我的活动在布局中有一个ViewPager。

我有两个片段显示,每个片段一个。

其中一个片段用于托管其他片段 - CustomerMainFragment会使fragment_customer_main膨胀:

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

    <FrameLayout
        android:id="@+id/fragment_customer_content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

然后将CustomerSearchFragment添加到导致FrameLayout的{​​{1}}。

fragment_customer_search还具有以下覆盖功能,可以在按下按钮时切换详细信息片段的搜索片段:

CustomerSearchFragment

点击按钮后,我收到以下错误:

  

java.lang.IllegalArgumentException:找不到id 0x7f080006的视图   片段(com.chrisbeckyapps.sample:id / fragment_customer_content)   CustomerDetailFragment {4280b0b8#0 id = 0x7f080006}

我是新片段并理解这些概念,但我对此感到困惑。我最初让搜索片段直接进入寻呼机,但是后来用细节片段替换它意味着它只显示在顶部,我的研究导致这是一个更好的解决方案。

我想知道试图将搜索逻辑移到@Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Button btnSearch1 = (Button) view.findViewById(R.id.button1); if (btnSearch1 != null) { btnSearch1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // This is important bit Fragment customerDetailFragment = new CustomerDetailFragment(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.addToBackStack(null); transaction.replace(R.id.fragment_customer_content, customerDetailFragment).commit(); } }); } } ,但这意味着需要连接很多逻辑,我认为你可以在片段中嵌入逻辑。

建议?

1 个答案:

答案 0 :(得分:4)

抱歉,刚刚找到了这么简单的解决办法。

在我的onclick处理程序中,我只需将getChildFragmentManager更改为getFragmentManager