Ich habe versucht, den Titel so gut wie möglich zu formulieren, aber im Grunde habe ich in der HomeActivity ein benutzerdefiniertes Menü mit einem Haufen für Fragmente.! Einer der sie ist HomeFragment
, die eine Tablelayout
von 2 Tabs mit einem viewpager
enthält ..!Viewpager funktioniert nicht, wenn ich von einer Werkzeugleiste zurück drücke
Alles funktioniert richtig.! Wenn jedoch innerhalb des Menüfragments der Benutzer auf die Zurück-Schaltfläche in der Symbolleiste klickt, kehrt er zu HomeFragment
zurück. Eine Fragment-Ersetzung-Methode wird den Trick, den ich bereits verwendet habe, um zwischen den Fragmenten zu ersetzen, wenn Sie aus dem Menü wählen!
Aber in diesem Fall öffnet die HomeFragment
noch die Tablayout
reagiert nicht! es fühlt sich an wie das Fragment nicht richtig erstellt wurde !?
Ich habe versucht, eine neue Absicht der gleichen Aktivität, die HomeFragment
standardmäßig öffnet, und es öffnet es aber mit dem gleichen Problem ..!
Das Problem
Der Kodex
HomeFragment
// code..
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
InitViews(rootView);
TabLayoutAdapter adapter = new TabLayoutAdapter(getFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
return rootView;
}
// code..
Menü Fragment
// code..
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.to_home:
replaceFragment(new HomeFragment());
// tried this and it's the same problem
// startActivity(new Intent(getActivity(), HomeActivity.class).setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void replaceFragment(Fragment fragment) {
android.support.v4.app.FragmentTransaction t = getFragmentManager().beginTransaction();
t.replace(R.id.Container, fragment);
t.commit();
}
// code..
es mir mit gibt's java.lang.IllegalArgumentException: Keine Aussicht für id gefunden 0x7f0d008a (XXX.XXXX: id/Container) für das Fragment GamesFragment {2b77c84 # 2 id = 0x7f0d008a} ' –
Wo ist das GamesFragment? – Anonymous
Es ist das Menü Fragment ..! Es ist Code in der Frage geschrieben! Warum denkst du, dass dieser Fehler sich zeigt?!? –