2016-09-26 3 views
-2

Мне нужно открыть фрагмент из другого. Я использую этот кодОткрытый фрагмент из-за ошибки фрагмента

  Fragment newFragment = new TabFragment(); 
      FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
      transaction.replace(R.id.viewpager, newFragment); 
      transaction.addToBackStack(null); 
      transaction.commit(); 

Но это не работает. Это журнал ошибок:

FATAL EXCEPTION: main 
Process: simone.biliato.fortitudobasketvedelago, PID: 4166 
    java.lang.IllegalArgumentException: No view found for id 0x7f0d00ab (simone.biliato.fortitudobasketvedelago:id/viewpager) for fragment TabFragment{12144aca #1 id=0x7f0d00ab} 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1059) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 
    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:145) 
    at android.app.ActivityThread.main(ActivityThread.java:5832) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

В "transaction.replace (R.id.viewpager, newFragment);" что я должен указать? У другой есть такая же проблема?

+0

Параметр 'R.id' вы передаете в этом вызове метода должен быть идентификатор для' ViewGroup', который будет содержать 'Fragment', в зависимости от того' ViewGroup' есть для этого , Это действительно не должно быть «ViewPager». –

+0

Возможно, вы захотите использовать 'getSupportFragmentManager' –

ответ

1

Попробуйте это:

private FragmentManager mFragmentManager = this.getFragmentManager(); 

FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
fragmentTransaction.replace(R.id.containerView, new NewFragment()).commit(); 
0

Кажется, что у вас нет изображения внутри фрагмента с id "viewpager". Добавьте в группу ViewGroup (например, FrameLayout) внутри фрагмента, чтобы быть контейнером для размещения нового фрагмента.

+0

Это xml TabAcitivty(); – Simone

Смежные вопросы