【问题标题】:Show icons in Toolbar Android在 Android 工具栏中显示图标
【发布时间】:2023-03-14 18:44:01
【问题描述】:

当我在菜单中选择一个选项时,我想在工具栏中显示 3 个图标,并且只显示图标的空间而不显示图标,我在 xml 中尝试了很多动作,但没有任何效果,请帮助,谢谢在建议中。

这是 XML。

<menu   
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/bno_marcadores"
        android:visible="false"
        yourapp:showAsAction="always"
        android:title="@string/disable_draw"
        android:showAsAction="always">
    </item>
    <item android:id="@+id/escribir_negro"
        android:visible="false"
        yourapp:icon="@drawable/escribirnegro"
        yourapp:showAsAction="always"
        android:showAsAction="always">
    </item>
    <item android:id="@+id/escribir_blanco"
        android:visible="false"
        yourapp:showAsAction="always"
        yourapp:icon="@drawable/escribirblanco"
        android:showAsAction="always">
    </item>
    <item android:id="@+id/escribir_azul"
        android:visible="false"
        yourapp:showAsAction="always"
        yourapp:icon="@drawable/escribirazul"
        android:showAsAction="always">
    </item>
    <group android:id="@+id/options_in_book"
           android:visible="false">
        <item android:id="@+id/inserttext"
              android:title="@string/inserttext"
              android:titleCondensed = " "
              yourapp:icon="@drawable/ic_pluma"
              yourapp:showAsAction="collapseActionView">
          </item>
         <item android:id="@+id/pluma_az"
              android:title="@string/pluma_az"
              android:titleCondensed = " "
              yourapp:icon="@drawable/ic_pluma"
              yourapp:showAsAction="collapseActionView">
          </item>
          <item android:id="@+id/Marcador_ama"
               android:title="@string/Marcador_ama"
               android:titleCondensed = " "
               yourapp:icon="@drawable/ic_plumon_ama"
               yourapp:showAsAction="collapseActionView">
           </item>
           <item android:id="@+id/Marcador_verde"
                android:title="@string/Marcador_verde"
                android:titleCondensed = " "
                yourapp:icon="@drawable/ic_plumon_ver"
                yourapp:showAsAction="collapseActionView">
            </item>
            <item android:id="@+id/borrador"
                 android:title="@string/borrador"
                 android:titleCondensed = " "
                 yourapp:icon="@drawable/ic_borrador"
                 yourapp:showAsAction="collapseActionView">
             </item>
    </group>
    <item android:id="@+id/reload_menu"
          android:visible="false"
          android:title="@string/reload_menu"
          android:icon="@android:drawable/ic_popup_sync"
          yourapp:showAsAction="ifRoom|collapseActionView">
     </item>  

insert text 是选项,escribir_negro、escirbir_azul、escribir_blanco 是我要显示的项目。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            if(drawerLayout.isDrawerOpen(GravityCompat.START)){
                drawerLayout.closeDrawers();//(myindice);
            }else
                finish();
            break;
        case R.id.Marcador_ama:
        case R.id.Marcador_verde:
        case R.id.pluma_az:
            Toastme_please("Navegación deshabilitada");
            Integer color = (item.getItemId() == R.id.Marcador_ama ? 2 : (item
                    .getItemId() == R.id.Marcador_verde ? 1 : 0));
            for (Integer i = 0; i < 2; i++) {
                mViews[i].color = color;
            }
            /*dis_en_controls(false);*/
            book_menu.findItem(R.id.bno_marcadores).setVisible(true);
            dibujar = true;
            borrar = false;
            escribir =false;
            book_menu.findItem(R.id.escribir_negro).setVisible(false);
            book_menu.findItem(R.id.escribir_blanco).setVisible(false);
            book_menu.findItem(R.id.escribir_azul).setVisible(false);
            break;
        case R.id.borrador:
            Toastme_please("Navegación deshabilitada");
            book_menu.findItem(R.id.bno_marcadores).setVisible(true);
            dibujar = false;
            borrar = true;
            escribir =false;
            book_menu.findItem(R.id.escribir_negro).setVisible(false);
            book_menu.findItem(R.id.escribir_blanco).setVisible(false);
            book_menu.findItem(R.id.escribir_azul).setVisible(false);

            //dis_en_controls(false);
            break;
        case R.id.bno_marcadores:
            Toastme_please("Navegación habilitada");
            dibujar = false;
            borrar = false;
            escribir = false;
            book_menu.findItem(R.id.escribir_negro).setVisible(false);
            book_menu.findItem(R.id.escribir_blanco).setVisible(false);
            book_menu.findItem(R.id.escribir_azul).setVisible(false);
            //dis_en_controls(true);
            item.setVisible(false);
            break;
        case R.id.inserttext:
            Toastme_please("Navegación habilitada");
            escribir = true;
            dibujar = false;
            borrar = false;
            book_menu.findItem(R.id.bno_marcadores).setVisible(true);
            book_menu.findItem(R.id.escribir_negro).setVisible(true);
            book_menu.findItem(R.id.escribir_blanco).setVisible(true);
            book_menu.findItem(R.id.escribir_azul).setVisible(true);
        case R.id.escribir_negro:
            for (Integer i = 0; i < 2; i++) {
                mViews[i].color = 3;
            }
            break;
        case R.id.escribir_blanco:
            for (Integer i = 0; i < 2; i++) {
                mViews[i].color = 4;
            }
            break;
        case R.id.escribir_azul:
            for (Integer i = 0; i < 2; i++) {
                mViews[i].color = 5;
            }
                break;
        default:
            break;
        }

        return super.onOptionsItemSelected(item);
    }

【问题讨论】:

    标签: java android icons toolbar


    【解决方案1】:

    您需要将 yourapp:icon 更改为 android:icon

    改变这个:

    <item android:id="@+id/escribir_azul"
        android:visible="false"
        yourapp:showAsAction="always"
        yourapp:icon="@drawable/escribirazul"
        android:showAsAction="always">
    </item>
    

    为此:

    <item android:id="@+id/escribir_azul"
        android:visible="false"
        yourapp:showAsAction="always"
        android:icon="@drawable/escribirazul">
    </item>
    

    【讨论】:

      【解决方案2】:

      与其尝试打开 ID 并找到正确的 ID,然后执行其他操作,您只需使用传入的项目即可。

      item.setVisible(true);
      

      或者在一个组的情况下,当您单击组时您希望孩子可见,您可以这样做:

      Menu menu = new Menu(); // Can also be inflated menu from XML
      public void onGroupItemClick(MenuItem item) {
          menu.setGroupVisible(item.getGroupId(), true);
      }
      

      我想这会为你简化很多事情。

      http://developer.android.com/guide/topics/resources/menu-resource.html

      【讨论】:

      • 感谢您的回答,以编程方式,我拥有所有可见的“项目”,当我给它们加上标题时,标题会显示出来,但是当我只放置它不显示的图标时。
      猜你喜欢
      • 2018-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2014-03-04
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      相关资源
      最近更新 更多