私のようなアプリケーションにBottomNavigationView
を追加しました。Android:Bottom Navigation View - 選択したアイテムのアイコンを変更
main.xml
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/colorPrimary"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/bottom_navigation_main" />
bottom_navigation_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_favorites"
android:enabled="true"
android:icon="@drawable/ic_favorite_white_24dp"
android:title="@string/text_favorites"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_schedules"
android:enabled="true"
android:icon="@drawable/ic_access_time_white_24dp"
android:title="@string/text_schedules"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_music"
android:enabled="true"
android:icon="@drawable/ic_audiotrack_white_24dp"
android:title="@string/text_music"
app:showAsAction="ifRoom" />
</menu>
をクリックしMainActivity
bottomNavigationView.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_favorites:
//need change icon of favotites here.
case R.id.action_schedules:
case R.id.action_music:
}
return true;
}
});
選択した位置の下部ナビゲーションのアイコンを変更したいと思います。ユーザーが1つのアイテムをクリックすると、この機能をどのように実現できますか?
(別のものへのユーザーが1つのアイテムをクリックした場合、その後のアイコンの変更)
「item」を宣言するコードを明示的に追加すると便利だと思います。 MenuItem item = menu.findItem(R.id.action_favorites); – larrytech
私はこのコードを試してみますが、他のアイコンをクリックすると、アイコンを塗りつぶすか、塗りつぶしアイコンのようにデフォルトのアイコンが設定されません –