我需要在我的应用中添加底部导航栏,使用我在github中找到的底栏库,我能够做得很好。
但是,另一个要求是当我点击它时更改底栏的图标。我无法做到这一点。任何人都可以帮助我如何实现
我的实施如下
bottomBar = BottomBar.attach(view,savedInstanceState);
bottomBar.useDarkTheme(false);
bottomBar.setItemsFromMenu(R.menu.bottom_home_menu, new OnMenuTabSelectedListener() {
@Override
public void onMenuItemSelected(@IdRes int menuItemId) {
switch (menuItemId){
case R.id.menu_home:
Snackbar.make(view,"Home tab",Snackbar.LENGTH_SHORT).show();
break;
case R.id.menu_to_do:
Snackbar.make(view,"To Do tab",Snackbar.LENGTH_SHORT).show();
break;
case R.id.menu_add_books:
Snackbar.make(view,"Add",Snackbar.LENGTH_SHORT).show();
break;
case R.id.menu_notification:
Snackbar.make(view,"Notification",Snackbar.LENGTH_SHORT).show();
break;
case R.id.menu_profile:
Snackbar.make(view,"Profile",Snackbar.LENGTH_SHORT).show();
break;
}
}
});
根据我看过的教程,它说要添加一个菜单,我做了如下所示。这是我在我的演示中使用的确切代码。 它在下面的片段中提到过。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_home"
android:icon="@drawable/icon_home_hdpi"
android:title="Home"/>
<item
android:id="@+id/menu_to_do"
android:icon="@drawable/icon_todo_hdpi"
android:title="To Do"/>
<item
android:id="@+id/menu_add_books"
android:icon="@drawable/icon_add_hdpi"
android:title="Add"/>
<item
android:id="@+id/menu_notification"
android:icon="@drawable/icon_notification_hdpi"
android:title="Notification"/>
<item
android:id="@+id/menu_profile"
android:icon="@drawable/icon_profile_hdpi"
android:title="Profile"/>
</menu>
答案 0 :(得分:0)
我没有要测试的库,但可能你可以为原始图标设置StateListDrawable,并为不同的状态设置不同的图像。
您只需要将此文件添加为drawable,并将此xml作为图像背景。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
<item android:drawable="@drawable/numpad_button_bg_normal"></item>
</selector>