Android 片段更改时发生崩溃(java.lang.IllegalArgumentException:找不到id为0x7f090095的视图)

Android 片段更改时发生崩溃(java.lang.IllegalArgumentException:找不到id为0x7f090095的视图),android,android-fragments,Android,Android Fragments,我在更改片段页面时遇到以下错误 Process: com.iance, PID: 26061 java.lang.IllegalArgumentException: No view found for id 0x7f090095 (com.inance:id/fragment_replace) for fragment myFragment{9fcc0b3 #12 id=0x7f090095} at android.support.v4.app.FragmentManagerImpl

我在更改片段页面时遇到以下错误

  Process: com.iance, PID: 26061
java.lang.IllegalArgumentException: No view found for id 0x7f090095 (com.inance:id/fragment_replace) for fragment myFragment{9fcc0b3 #12 id=0x7f090095}
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422)
    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:7000)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)


IN Activity

   ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFrag(new HomeFragment(), "HomeDashBoard");
    adapter.addFrag(new NotificationFragment(), "Notification");
    adapter.addFrag(new ProfileFragment(), "Profile");
    viewPager.setAdapter(adapter);




class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFrag(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // return null to display only the icon
        return null;
    }
}


In HomeFragment:

    @Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);

       ChildFragment chilfragment = new ChildFragment ();
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.fragment_replace, chilfragment );
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
 }


home fragment.xml:

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

    </LinearLayout>
  </LinearLayout>
 Thanks in advance
Process:com.iance,PID:26061
java.lang.IllegalArgumentException:未找到片段myFragment{9fcc0b3#12 id=0x7f090095}的id 0x7f090095(com.inance:id/fragment_replace)的视图
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1422)
在android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
位于android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
位于android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
在android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
在android.support.v4.app.FragmentManagerImpl.removedandtoperationsandexecute(FragmentManager.java:2338)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
位于android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
位于android.os.Handler.handleCallback(Handler.java:790)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:7000)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
活跃
ViewPagerAdapter适配器=新的ViewPagerAdapter(getSupportFragmentManager());
addFrag(新的HomeFragment(),“HomeDashBoard”);
addFrag(newnotificationfragment(),“Notification”);
addFrag(新ProfileFragment(),“Profile”);
viewPager.setAdapter(适配器);
类ViewPagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共视图页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFrag(片段、字符串标题){
添加(片段);
MFFragmentTitleList.add(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
//返回null以仅显示图标
返回null;
}
}
在HomeFragment中:
@凌驾
public void setUserVisibleHint(布尔值isVisibleToUser){
super.setUserVisibleHint(isVisibleToUser);
ChildFragment chilfragment=新的ChildFragment();
FragmentTransaction FragmentTransaction=getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment\u replace,chilfragment);
fragmentTransaction.addToBackStack(空);
fragmentTransaction.commit();
}
home fragment.xml:
提前谢谢

在您的
视图页面编辑器中
尝试从
getSupportFragmentManager()
更改为
getChildFragmentManager()


可能重复:显示父活动xml的片段更改代码我已经提到我在这里尝试的@TejasPandya哪里是
fragment\u replace
?检查更新的代码@TejasPandya
ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
    adapter.addFrag(new HomeFragment(), "HomeDashBoard");
    adapter.addFrag(new NotificationFragment(), "Notification");
    adapter.addFrag(new ProfileFragment(), "Profile");
    viewPager.setAdapter(adapter);