2014-11-05 15 views
8

Mam jedną czynność, która zawiera po jednym fragmencie na raz i zamienia się między dwoma fragmentami. Fragment A rozpoczyna fragment B za pomocą przycisku, a Fragment B rozpoczyna fragment A za pomocą przycisku lub przycisku wstecz."Nie można znaleźć wyjątku klasy android.transition.Transition" po naciśnięciu przycisku cofania

Wszystko działa poprawnie podczas przechodzenia od fragmentów A do B i od B do A za pomocą niestandardowych przycisków. Problem polega na tym, że za pomocą przycisku wstecz przechodzę od fragmentu B do A (Fragment A dodaje transakcję do tylnego stosu).

Po naciśnięciu przycisku Wstecz podczas fragmentu B otrzymuję kilka wyjątków "Nie można znaleźć wyjątków dla klasy android.transition.Transition" i "Nie można rozpoznać 1217-czek odlewania, takich jak 11, które nie powodują awarii program:.

Log

nie mam pojęcia, co to oznacza i jak można to rozwiązać

ten sposób rozpoczyna Fragment Fragment B:

mButtonNextFragment.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     FragmentManager fm = getActivity().getSupportFragmentManager(); 
     Fragment fragment = FragmentTwo.newInstance(mCount); 
     fragment.setTargetFragment(FragmentOne.this, 0); 

     fm.beginTransaction() 
      .addToBackStack("transaction1") 
      .replace(R.id.layout_fragmentContainer, fragment) 
      .commit(); 
    } 
}); 

ten sposób rozpoczyna Fragment B Fragment A:

mButtonPrevFragment.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     FragmentManager fm = getActivity().getSupportFragmentManager(); 
     fm.beginTransaction() 
      .replace(R.id.layout_fragmentContainer, getTargetFragment()) 
      .commit(); 
    } 
}); 

I tak rozpoczyna działalność gospodarza Fragment A:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_fragment_container); 

    FragmentManager fm = getSupportFragmentManager(); 
    Fragment fragment = fm.findFragmentById(R.id.layout_fragmentContainer); 

    if (fragment == null) { 
     fragment = new FragmentOne(); 
     fm.beginTransaction() 
      .add(R.id.layout_fragmentContainer, fragment) 
      .commit(); 
    } 
} 

ktoś zna przyczynę tego problemu?

Oto pełna dziennika błędów: http://pastebin.com/CPtCUBYg

+0

czy zastąpiłeś onbackpressed? –

+0

@nayoso Nie zastąpiłem onBackPressed – Rob

+0

Myślę, że znalazłem twój problem, ale proszę napisać cały błąd? dla pewności .. Sir? – Elltz

Odpowiedz

1

Trochę późno, ale może mam coś. Nie jestem pewien, co jest przyczyną tego problemu, poczynię pewne badania później, ale tutaj w moim Projekcie wystąpił ten sam błąd po zaktualizowaniu biblioteki wsparcia dla Androida. Używanie starszej wersji (która znajdowała się w bibliotece HoloEverywhere) działało normalnie. Spróbuj użyć starszej wersji wsparcia Android, aby sprawdzić, czy działa lepiej. Być może coś poszło nieaktualne w najnowszej wersji, ale nie jestem pewien.

Powiązane problemy