-1

Ich habe eine Aktivität mit 2 Tabs. Was ich versuche zu tun, ist zwischen zwei Fragmenten zu ersetzen, wenn jede Registerkarte gedrückt wird. Ich habe auch 2 Fragmente: fragmentOne und fragmentTwo. Wenn Tab 1 gedrückt wird, möchte ich fragmentOne zeigen und wenn Tab zwei gedrückt wird, möchte ich fragmentTwo zeigen. Ich bin mir nicht sicher, ob ich ein Container-Layout in der Aktivität erstellen soll und dort die fragmentOne und fragmentTwo hinzufügen, oder vielleicht gibt es noch eine andere Möglichkeit, es zu tun?Wie ersetzt man Fragmente auf der Registerkarte?

hier ist mein Code

public class InboxActivity extends AppCompatActivity { 
private TabLayout tabLayout; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_inbox); 

    tabLayout = (TabLayout)findViewById(R.id.tabLayout); 

    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      Fragment fragment; 
      int position = tab.getPosition(); 
      //requests = position - 0 
      //invitations = position - 1 
      switch (position){ 
       case 0: 
        break; 
       case 1: 
        break; 
      } 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 

wenn Fall ist 0 i fragmentOne

wenn Fall i 1 i fragmentTwo

Wie zeigen wollen zeigen will, sollte ich das tun?

+1

Verwendung Registerkarte Layout mit Viewpager Folgen Sie dieser Anleitung: https://android.jlelse.eu/tablayout-and-viewpager-in-your-android-app-738b8840c38a –

Antwort

1

Sie verwenden, können sie wie folgt tun:

public void onTabSelected(TabLayout.Tab tab) { 
    Fragment fragment = null; 

    switch (tab.getPosition()) { 
     case 0: 
     fragment = new FirstFragment(); 
     break; 

     case 1: 
     fragment = new SecondFragment(); 
     break;  
    } 

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.simpleFrameLayout, fragment); 
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
    ft.commit(); 
} 

Hier ist ein tutorial für weitere Informationen

+0

das Tutorial hat mir wirklich geholfen –

0

Verwenden Sie stattdessen eine ViewPager.

einen Adapter in der Ansicht Pager einstellen und verwenden Sie es mit einem TabLayout

tabLayout.setupWithViewPager(viewPager); 
Verwandte Themen