2017-03-29 4 views
1

J'ai créé un nouveau projet avec l'activité de barre inférieure. Ceci est le code généré:Comment changer l'activité avec la barre bottomnavigation

package com.aaron.waller.mrpolitik; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.design.widget.BottomNavigationView; 
import android.support.v7.app.AppCompatActivity; 
import android.view.MenuItem; 
import android.widget.TextView; 

import com.aaron.waller.mrpolitik.tabs.KommentareFragment; 

public class MainActivity extends AppCompatActivity { 

    private TextView mTextMessage; 

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
      = new BottomNavigationView.OnNavigationItemSelectedListener() { 

     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.navigation_home: 
        mTextMessage.setText(R.string.title_home); 
        Intent fragen = new Intent(MainActivity.this, KommentareFragment.class); 
        startActivity(fragen); 
       case R.id.navigation_dashboard: 
        mTextMessage.setText(R.string.title_dashboard); 
       case R.id.navigation_notifications: 
        mTextMessage.setText(R.string.title_notifications); 
      } 
      return true; 
     } 

    }; 

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

     mTextMessage = (TextView) findViewById(R.id.message); 
     BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); 
     navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 
    } 

} 

Et je veux mettre ces trois fragments sur la la barre de navigation: FirstFragment SecondFragment ThirdFragment

Aussi je veux glisser entre les fragments, comment puis-je faire?

Répondre

0

Vous ne pouvez pas charger les fragments à travers l'intention. Pour charger des fragments par BottomNavigationBar vous pouvez faire comme suit:

d'abord ajouter FrameLayout à notre activity_main.xml:

<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

remplacer ensuite ce récipient avec Fragments onNavigationItemSelected:

@Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      FragmentManager fm = getFragmentManager(); 
      switch (item.getItemId()) { 
       case R.id.navigation_home: 
        mTextMessage.setText(R.string.title_home); 
        fm.beginTransaction().replace(R.id.container, new FirstFragment()).commit();      
       case R.id.navigation_dashboard: 
        mTextMessage.setText(R.string.title_dashboard); 
        fm.beginTransaction().replace(R.id.container, new SecondFragment()).commit(); 
       case R.id.navigation_notifications: 
        mTextMessage.setText(R.string.title_notifications); 
        fm.beginTransaction().replace(R.id.container, new ThirdFragment()).commit(); 
      } 
      return true; 
     } 

Pour, créer un effet de glissement entre fragments que vous pouvez utiliser ViewPager. Here est un tutoriel comment utiliser ViewPager pour glisser entre les fragments. J'espère que cela t'aides.