onNavigationItemSelected nicht immer genannt
Implementierte ich eine navigationview in meiner app , die automatisch erstellt wurde, indem AndroidStudio
. Ich hob den NavigationDrawer
Activity
wenn ich ein neues Projekt erstellt und die Menü-Einträge scheinen ok , aber nichts passiert, wenn ich klicken Sie auf den Menüpunkt .
Unten ist mein onNavigationItemSelected()
Methode:
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Toast.makeText(MainActivity.this,"onNavigationItemSelected",Toast.LENGTH_LONG).show();
//Handle navigation view item clicks here.
item.setChecked(true);
int id = item.getItemId();
if (id == R.id.medicalRecord) {
Toast.makeText(MainActivity.this,id,Toast.LENGTH_LONG).show();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Und meine onCreate-Methode erstelle ich die NavigationView in es
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear_layout);
if (babyImage.exists()) {
Drawable drawable = Drawable.createFromPath(Environment.getExternalStorageDirectory() + "/babycare/temp.jpg");
linearLayout.setBackground(drawable);
}
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerLayout.openDrawer(Gravity.LEFT);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
Natürlich , ich implementiert die NavigationView.OnNavigationItemSelectedListener für meine Klasse .
Frage ich mich, ob diese NavigationView sollte sein, die Umsetzung in Material Design-Thema, oder nicht . Jetzt ist das Thema in meinem app ist @style/AppTheme
Bitte jemand mir helfen , danke
InformationsquelleAutor Nick Su | 2016-04-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich löste meine Frage , einfach nur die Reihenfolge ändern, in meinem activity_main.xml .
Ich habe ein LinearLayout viewgroup und NavigationView in meinem DrawerLayout viewgroup , zuerst die NavigationView ist das erste in meiner viewgroup und jetzt habe ich die Reihenfolge ändern , das erste ist das LinearLayout und das zweite ist NavigationView , und es funktioniert, wie es angenommen zu werden . Liebe!!!
Aber kann mir jemand sagen, warum es passiert ist ? Es ist egal, in der Ansicht, um in einer viewgroup, unabhängig von der Anzeige-Sequenz .
Den Navigation Schublade helfen sagen:
Bezug auf dieses Beispiel:
So ist dies die Erklärung, was ziemlich ärgerlich ist, wenn Sie die falschen layout, um als Ergebnis eine automatisch generierte template. Ich habe vor dieser Art von "Problemen" mit Android Studio ein paar mal und ist so fustrating.
Ich hatte auch dieses Problem und ich endlich herausgefunden, was falsch war, habe ich zunächst erstellt ein Beispiel-Projekt mit navigation drawer und die Haupt-Aktivität wurde xml als unten,
Aber in die eigentliche app, die ich gemacht ich habe einen Fehler wie diese,
Hatte ich ein LinearLayout unterhalb der NavigationView das war das Problem.
Dann habe ich dies getan, begann sich alles zu funktionieren.
Schlüssel war, den NavigationView endlich. Komisch, dass die Benutzeroberfläche nicht gestört wurde, aber Rückruf wurde.
Den Navigation Schublade helfen sagen:
Bezug auf dieses Beispiel:
Was ziemlich ärgerlich ist, wenn Sie die falschen layout, um als Ergebnis eine automatisch generierte template. Ich habe vor dieser Art von "Problemen" mit Android Studio ein paar mal und ist so fustrating.
sollten Sie die Stelle des tags. nicht tun sollte NavigationView ersten. es funktioniert.