Ich habe eine App mit BottomNavigation (3 Elemente). Das Element 1 lädt Fragment 1, Element 2 lädt Fragment 2 und Element 3 lädt Fragment 3. Wenn ein Element in der BottomNavigation ausgewählt wird, bleibt die Ansicht dieses Elements blau und der Text ist größer. Ich habe onBackPressed implementiert, dafür die Fragmenthistorie (BackStack). Aber wenn ich unterstütze, sind die Ansichten in BottomNavigation Stoppe. Also, wenn ich in Fragment 3 bin, und ich drücke die Zurück-Taste und zurück zu Fragment 2, zeigt die BottomNavigationView, dass ich in Fragment 3 bin, und wenn ich die Taste erneut drücke, gehe ich zu fragment1, aber die BottomNavigationView don Es wird nicht aktualisiert, es bleibt in Fragment 3. Die ScreenShorts zeigen, wovon ich rede. Sorry mein schlechtes Englisch und meine schlechte Erklärung.BottomNavigation Element Ausgewählte Animation onBackPressed
MainActivity.java
public class MainActivity extends AppCompatActivity {
private TextView mTextMessage;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.navigation_home:
selectedFragment = Fragment1.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.content, selectedFragment).addToBackStack(null).commit();
return true;
case R.id.navigation_dashboard:
selectedFragment = Frament2.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.content, selectedFragment).addToBackStack(null).commit();
return true;
case R.id.navigation_notifications:
selectedFragment = Fragment3.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.content, selectedFragment).addToBackStack(null).commit();
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
Entschuldigung für die Verzögerung zu antworten. Die Bastart ist also, wenn die Zurück-Taste gedrückt wird, wird immer zu Fragment 1 zurückgeschaltet? –
@TonyStarkus gemäß den Richtlinien, sollte der Back Press tun, was auch immer der Systemstandard ist, und die untere Navigation und/oder Fragmente vollständig ignorieren. Wahrscheinlich würde es also deine Aktivität beenden. –