代码之家  ›  专栏  ›  技术社区  ›  Samsung Developer

更改文本颜色主菜单android?

  •  0
  • Samsung Developer  · 技术社区  · 7 年前

    我想更改 item menu .

    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_mi_cuenta"
                android:icon="@mipmap/ic_mi_cuenta"
                android:title="@string/mi_cuenta" />
        </group>
    
        <item android:title="@string/herramientas">
            <menu>
                <item
                    android:id="@+id/nav_configuracion"
                    android:icon="@mipmap/ic_config"
                    android:title="@string/configuraci_n" />
            </menu>
        </item>
    
    </menu>
    

    我想更改以下内容的文本颜色:

    <item android:title="@string/herramientas">
    

    enter image description here

    Herramientas 项目 “Mis datos”和“Configuracin”从服务器的外部json文件以编程方式更改它,如下所示:

    colorElegido = getParseColor(json.getString("colorMenuLateral"));
    navigationView.setBackgroundColor(colorElegido);
    
    colorElegido = getParseColor(json.getString("colorFuenteMenuLateral"));
    ColorStateList colorList = getColorList(colorElegido);
    
    navigationView.setItemTextColor(colorList);
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Sunisha Guptan    7 年前

    以下代码将用于训练,

    menu.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_mi_cuenta"
                    android:icon="@mipmap/ic_mi_cuenta"
                    android:title="@string/mi_cuenta" />
            </group>
    
            <item 
     android:id="@+id/herramientas"
    android:title="@string/herramientas">
                <menu>
                    <item
                        android:id="@+id/nav_configuracion"
                        android:icon="@mipmap/ic_config"
                        android:title="@string/configuraci_n" />
                </menu>
            </item>
    
        </menu>
    

    将此添加到您的样式中,

    <style name="TextAppearance44">
        <item name="android:textColor">#FF0000</item>
        <item name="android:textSize">20sp</item>
    </style>
    <style name="NavigationDrawerStyle">
        <item name="android:textSize">16sp</item><!-- text size in menu-->
        <item name="android:textColor">#880ACE0A</item>
        <item name="itemTextColor">#880ACE0A</item>
    </style>
    

    在你的活动中,

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            Menu menu = navigationView.getMenu();
    
            MenuItem tools= menu.findItem(R.id.herramientas);
            SpannableString s = new SpannableString(tools.getTitle());
            s.setSpan(new TextAppearanceSpan(this, R.style.TextAppearance44), 0, s.length(), 0);
            tools.setTitle(s);
            navigationView.setNavigationItemSelectedListener(this);
    

    以及其他可以在xml文件中使用的文本颜色更改,

    <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"
        style="@style/NavigationDrawerStyle"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />
    
        2
  •  1
  •   Anurag Shrivastava    7 年前

    定制 popup 制作一个 ImageView 在里面 toolbar

    private ImageView setting;
    
    public void menuOptions() {
        PopupMenu popup = new PopupMenu(MainActivity.this, setting);
        // Inflating the Popup using xml file
        popup.getMenuInflater()
                .inflate(R.menu.menu_main, popup.getMenu());
    
        //registering popup with OnMenuItemClickListener
        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
    
                switch (item.getItemId()) {
                    case R.id.button1:
    
                        return (true);
                    case R.id.button2:
                        // block contacts
    
                        return (true);
                }
    
                return true;
            }
        });
    
        popup.show(); //showing popup menu
    }
    

    在…上 Button

     menuOptions();
    

    在布局中,您可以对menu_main进行充气。xml,生成所需的视图。