Frage zu entfernen NavigationView Menüpunkt ausgewählte Farbe?
Hallo alle, ich bin vor einem seltsamen Problem. Ich fügte Navigation View
in meinem Activity
und standardmäßig jedes mal, wenn ich starten Sie die App das erste in der navigation den Punkt mit einigen ausgewählten Hintergrundfarbe.
Möchte ich zu entfernen dieses feature.
Mein gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
}
Code:
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//Handle action bar item clicks here. The action bar will
//automatically handle clicks on the Home/Up button, so long
//as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
//Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
//Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Menü XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_camera"
android:icon="@drawable/ic_menu_camera"
android:title="Import" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="Tools" />
</group>
Layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
SnapShot::
Jeden Hinweis so entfernen Sie diese Art von Funktionen?
- Können Sie Ihre Tätigkeit code?
- ya natürlich warten
- verwenden Sie für den ersten Artikel, android:checked="true"
- dies ist von Ihnen ausgewählten android:checkableBehavior="single" auf die Gruppe, wenn erforderlich, entfernen Sie die Gruppe aus dem Menü und legen Sie die Artikel direkt im Menü-tag
- Wenn ich zu entfernen es immer noch passiert, bro.
- überprüfen Sie in diesem stackoverflow.com/questions/31045008/... können Sie einige Ahnung
- Nur ein Hauch -
findViewById
ist eine teure Methode in android. Es wird empfohlen, nur nennen Sie es einmal und machen das Objekt global in Ihrer Klasse. 🙂
InformationsquelleAutor M D | 2015-12-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur false zurück, es werden in ungeprüften Zustand und Umgekehrt
Ende
public boolean onNavigationItemSelected(MenuItem item)
nicht den job
Können Sie vollständige Kontrolle über Element die Hintergrundfarbe, ändern Sie einfach
itemBackground
AttributNavigationView
:Können Sie
ColorStateList
sowie auf anderen hintergrund für Aktivierungszustand und ungeprüfter Zustand.Überall in Ihrem code oder jedes fragment verwenden Sie wie
als seine möglich, ansonsten können Sie es im aktualisierten Support-Bibliothek, wie in v23 seine Arbeitsmethoden in Ordnung
Funktioniert es jetzt. Ich habe gerade
appcompat
unddesign
libs mit den neuesten ein.return false;
Wenn Sie return false; dann wird es deaktiviert-Zustand und Umgekehrt