2017-05-03 1 views
0

Ich verwende die untere Navigation und das Aufruffragment (Beispiel Home) in der Definition Framelayout (ID: flayout), wenn Sie auf die Schaltfläche Home klicken. Was ich wissen möchte, wenn es möglich ist, ein anderes Fragment (Bsp. Kaufen) im Fragment (Home) aufzurufen und es auf Framelayout (ID: flayout) anzuzeigen? Wie finde ich Framelayout ID im Fragment (Buy), da es ein anderes Layout hat? Danke!So rufen Sie das Fragment in einem Fragment auf und zeigen dasselbe Layout an

Ich kann meine anderen Fragmente problemlos in der Grundnavigation aufrufen. Dies ist der Code für meine bottomnavigation.java

bottomNavigation = (BottomNavigationView) findViewById(R.id.navigation); 
    fragmentManager = getSupportFragmentManager(); 
    bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      int id = item.getItemId(); 
      switch (id){ 
       case R.id.navigation_home: 
        fragment = new Home(); 
        break; 
       case R.id.navigation_buy: 
        fragment = new Buy(); 
        break; 
       case R.id.navigation_sell: 
        fragment = new Sell(); 
        break; 
      } 
      final FragmentTransaction transaction = fragmentManager.beginTransaction(); 
      transaction.replace(R.id.content, fragment).commit(); 
      return true; 
     } 
    }); 
    fragment = new Home(); 
    final FragmentTransaction transaction = fragmentManager.beginTransaction(); 
    transaction.replace(R.id.content, fragment).commit(); 

Wenn ich zu Home Geh() und ein weiteres Fragment wie Kaufen() Startseite() aufrufen. Wie Sie auf das Frame-Layout (R.id.content) zugreifen und es anzeigen können, da es sich in untennavigation.java befindet XML-Layout. Ist es möglich?

+0

Was haben Sie schon versucht? Gib uns einige Informationen wie Code-Schnipsel, Umgebung und ähnliches, damit wir das Problem verstehen können. –

+0

Ich habe meine Frage aktualisiert. Bitte prüfe – Benjie

Antwort

0

Sie können dies für den Wandel Fragment versuchen:

 getChildFragmentManager().executePendingTransactions(); 

    final FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 

    transaction.addToBackStack(null); 
    transaction.replace(R.id.flayout, new Buy()); 

    transaction.commit(); 
Verwandte Themen