Vytváram aplikáciu, v ktorej som vytvoril spodnú časťnavigačná lišta. Teraz chcem nastaviť samostatné farby pre vybratý / nezvolený stav položiek navigačného panela. Vytvoril som teda súbor xml a nastavil ho na odtieň položky a farbu textu na navigačnej lište, ako je to znázornené:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@android:color/holo_blue_dark" />
<item android:color="@android:color/darker_gray" />
</selector>
av hlavnom menu pridanie navigačného panela ako:
<android.support.design.widget.BottomNavigationView
android:id="@+id/mainNav"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@android:color/white"
android:elevation="8dp"
app:itemIconTint="@color/nav_bar_item_state"
app:itemTextColor="@color/nav_bar_item_state"
app:menu="@menu/nav_items"></android.support.design.widget.BottomNavigationView>
Toto riešenie som dostal z tohto odkazu:
Farba vybratej karty v zobrazení spodnej navigácie
Ale keď spustím aplikáciu, zhroutí sa s chybou „nie je možné nafúknuť navigačný panel“. Čo robím zle? Akákoľvek pomoc by bola ocenená.
aktualizácia: Rovnakú vec som vyskúšal vytvorením súboru selektora v súbore, ktorý je možné vybrať, ale bohužiaľ to tiež nefunguje.
odpovede:
0 pre odpoveď č. 1Skúste to:-
nastaviť item.setCheckable(true)
vnútri onNavigationItemSelected()
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
item.setCheckable(true);
mTextMessage.setText(R.string.title_home);
return true;
}
return false;
}