相关疑难解决方法(0)

Android:底部导航视图 - 更改所选项目的图标

BottomNavigationView在我的应用程序中添加了像.

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" />
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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;
            }
        });
Run Code Online (Sandbox Code Playgroud)

我想更改所选位置底部导航的图标.当用户点击一个项目时,我们如何实现此功能?

(如果用户点击了一个项目,那么图标会变为另一个项目)

android android-layout android-support-library bottomnavigationview

41
推荐指数
6
解决办法
6万
查看次数

MenuItem的选中状态未通过其图标正确显示

我有这样定义的MenuItem:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_starred"
        android:icon="@drawable/btn_star"
        android:title="@string/description_star"
        android:checkable="true"
        android:checked="true"
        android:orderInCategory="1"
        android:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

并以btn_star.xml这种方式定义:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_checked="false" 
        android:drawable="@drawable/btn_star_off_normal" />
    <item 
        android:state_checked="true"
        android:drawable="@drawable/btn_star_on_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)

当我创建使用此选项菜单,但是,图标永远不会在其选中的状态显示,即使MenuItemisChecked()属性为true.

我正在使用ActionBarSherlock控件,但是,如果我只是创建一个普通的选项菜单并调用,我得到相同的结果setChecked(true).btn_star_off无论项目的检查状态如何,它仍然显示drawable.

onOptionsItemSelected()正确调用该方法,我可以成功更改checked属性:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.isCheckable()) {
            item.setChecked(!item.isChecked());
        }
        return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

在此处设置断点会显示isChecked属性已更改,但图标本身未更新以反映正确的状态.

这里有什么我想念的吗?我做错了吗?我无法弄清楚为什么这不能正常工作.

android menu menuitem android-actionbar

17
推荐指数
3
解决办法
2万
查看次数

如何在BottomNavigationView中设置所选项目

我试图在创建的活动上设置默认项目,但它不起作用?这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_userhome);
    mTextMessage = (TextView) findViewById(R.id.message);
    profile = (FrameLayout) findViewById(R.id.profile);
    mall = (FrameLayout) findViewById(R.id.mall);
    dietplan =(FrameLayout) findViewById(R.id.dietplan);
    BottomNavigationView navigation = (BottomNavigationView) 
    findViewById(R.id.navigation);
    navigation.setSelectedItemId(R.id.dietplan);
     navigation.setOnNavigationItemSelectedListener 
    (mOnNavigationItemSelectedListener);
}
Run Code Online (Sandbox Code Playgroud)

但似乎navigation.setSelectedItemId(R.id.dietplan);没有用.请帮我设置底部导航栏的默认项:

这是我的堆栈跟踪(logcat):

FATAL EXCEPTION: main
   Process: gym.android.ommsoftware.gym, PID: 1915
   java.lang.RuntimeException: Unable to start activity ComponentInfo{gym.android.ommsoftware.gym/gym.android.ommsoftware.gym.Userhome}: java.lang.NullPointerException
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2404)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464)
       at android.app.ActivityThread.access$900(ActivityThread.java:172)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:146)
       at android.app.ActivityThread.main(ActivityThread.java:5653)
       at java.lang.reflect.Method.invokeNative(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
       at dalvik.system.NativeStart.main(Native Method)
    Caused by: java.lang.NullPointerException
       at …
Run Code Online (Sandbox Code Playgroud)

android bottomnavigationview

16
推荐指数
4
解决办法
3万
查看次数

Android底部导航查看项目文本颜色?

我开始研究Android底部导航视图.但我面临一个问题.如果我向底部导航视图添加了5个项目,则只显示项目文本的选定项目.如果我添加3项,它工作正常.请告诉我如何显示所有5个项目的项目文本.先感谢您.

menu.xml文件:

<menu 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"
    tools:context="com.reloadapp.reload.activity.IconTabsActivity">
    <item
        android:id="@+id/action_favorites"
        android:enabled="true"
        android:icon="@drawable/home_40"
        android:title="Home"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_schedules"
        android:enabled="true"
        android:icon="@drawable/profile_40"
        android:title="Profile"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_music"
        android:enabled="true"
        android:icon="@drawable/reload_40"
        android:title="Reload cash"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_musi"
        android:enabled="true"
        android:icon="@drawable/notifications"
        android:title="Notifications"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_mus"
        android:enabled="true"
        android:icon="@drawable/menu_40"
        android:title="More"
        app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)

依赖:编译'com.android.support:appcompat-v7:25.0.1'compile'c​​om.android.support:design:25.0.0'

 <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemBackground="@color/textColorPrimary"
        app:menu="@menu/menu_icon_tabs"
        app:itemIconTint="@color/colorPrimary"
        app:itemTextColor="@color/colorPrimary"
        android:layout_alignParentBottom="true">
    </android.support.design.widget.BottomNavigationView>
Run Code Online (Sandbox Code Playgroud)

android android-menu android-support-library android-bottom-nav-view

4
推荐指数
1
解决办法
6386
查看次数

单击时如何不更改底部导航视图项目颜色

我有三件物品 bottomNavigationView

在此处输入图片说明

当我单击个人资料项时,代码会检查此人是否已登录。如果此人未登录,则我需要开始一个新的Activityelse 我需要fragment在我的frameLayout.

现在的问题是,当我单击配置文件项并且此人未登录时,活动开始,但是当我单击返回时,配置文件项会突出显示,但主页片段已加载到框架布局中。

在此处输入图片说明

我尝试了以下方法来解决这个问题

1)我曾经setSelectedItemId在点击个人资料项目时设置项目颜色但它不起作用

有没有其他方法可以做到这一点?

android android-fragments android-fragmentactivity bottomnavigationview

2
推荐指数
1
解决办法
4914
查看次数