¿Cómo mostrar el icono y el título de la acción dentro de ActionBar?

Necesito mostrar el icon y el title de la acción dentro de ActionBar .

He intentado " withText " opción, pero no tiene ningún efecto.

Introduzca aquí la descripción de la imagen

' Always | withText ' funcionará si hay suficiente espacio, de lo contrario sólo colocará el icono. Puede probarlo en su teléfono con rotación.

 <item android:id="@id/menu_item" android:title="text" android:icon="@drawable/drawable_resource_name" android:showAsAction="always|withText" /> 

Puede crear acciones con texto de dos formas:

1- De XML:

 <item android:id="@id/resource_name" android:title="text" android:icon="@drawable/drawable_resource_name" android:showAsAction="withText" /> 

Al inflar el menú, debe llamar a getSupportMenuInflater() ya que está utilizando ActionBarSherlock .

2- Programación:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem item = menu.add(Menu.NONE, ID, POSITION, TEXT); item.setIcon(R.drawable.drawable_resource_name); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } 

Asegúrese de importar com.actionbarsherlock.view.Menu y com.actionbarsherlock.view.MenuItem .

Lo que funcionó para mí fue usar ' always | withText '. Si tiene muchos menús, considere utilizar 'ifRoom' en lugar de 'always'.

 <item android:id="@id/resource_name" android:title="text" android:icon="@drawable/drawable_resource_name" android:showAsAction="always|withText" /> 

La solución que encuentro es usar la acción de encargo Layout: Aquí está XML para el menú.

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:Eventapp="http://schemas.android.com/apk/res-auto"> <!-- This is a comment. --> <item android:id="@+id/action_create" android:actionLayout="@layout/action_view_details_layout" android:orderInCategory="50" android:showAsAction = "always"/> </menu> 

El diseño es

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="5dp" android:gravity="center" android:text="@string/create"/> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="5dp" android:paddingRight="5dp" android:gravity="center" android:src="@drawable/ic_action_v"/> </LinearLayout> 

Esto mostrará el icono y el texto juntos.

Para obtener el clickitem el fragmento o la actividad:

 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { //super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_details_fragment, menu); View view = menu.findItem(R.id.action_create).getActionView(); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show(); } }); } 

Si any1 en 2017 se pregunta cómo hacer esto mediante programación, hay una manera que no veo en las respuestas

 .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

Algunos de ustedes tienen grandes respuestas, pero encontré algo más. Si desea crear un MenuItem con algún SubMenu mediante programación:

  @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu subMenu = menu.addSubMenu(0, Menu.NONE, 0, "Menu title"); subMenu.getItem().setIcon(R.drawable.ic_action_child); subMenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); subMenu.add(0, Menu.NONE, 0, "Subitem 1"); subMenu.add(0, Menu.NONE, 1, "Subitem 2"); subMenu.add(0, Menu.NONE, 2, "Subitem 3"); return true; } 

Sigue estos pasos:

  1. Agregue la instancia de la barra de acción en el final ActionBar actionBar = getActionBar(); código Java final ActionBar actionBar = getActionBar();
  2. Habilitar la opción de pantalla principal actionBar.setDisplayShowHomeEnabled(false);
  3. Agregue el siguiente código en el archivo de manifiestos de la actividad respectiva android:logo=@drawable/logo and android:label="@string/actionbar_text"

Creo que esto te ayudará

Uso de la aplicación: showAsAction = "always | withText". Estoy usando Android 4.1.1, pero debe aplicarse de todos modos. El mío se ve como abajo

 <item android:id="@+id/action_sent_current_data" android:icon="@drawable/ic_upload_cloud" android:orderInCategory="100" android:title="@string/action_sent_current_data" app:showAsAction="always|withText"/> 
  • Obtener / recoger una imagen de la aplicación de Android integrada en la Galería mediante programación
  • En Android, ¿cómo posiciono una imagen encima de otra para que parezca una insignia?
  • En Android, ¿cómo desactivar el botón de inicio de sesión con respecto a EditText?
  • Obtener la posición de la imagen actual en la Galería
  • La animación no se inicia hasta que las actualizaciones de la interfaz de usuario o el evento de toque
  • Android- ¿Cómo diferenciar los diseños de Galaxy S-3 y Galaxy S-4?
  • ¿Cómo evitar que un fragmento se agregue varias veces?
  • Android: Actualización sobre el hilo de la interfaz de usuario muy rápido
  • Android muestra teclado suave cuando el fragmento onResume
  • Escala Dibujable - ¿setImageLevel determina la escala?
  • Cómo obtener DrawerLayout para deslizarse sobre la barra ActionBar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.