¿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.
- ¿Por qué llamar a setScaleX durante el gesto de pinch zoom causa parpadeo?
- Ejemplos de Fragmentos de Android
- Estilo de elemento de menú Arc como en la aplicación tumblr para Android
- Android - Botón con imagen giratoria / giratoria de "carga" cuando se pulsa
- El fondo de pantalla de Android también se desliza hacia la izquierda y la derecha cuando desliza la pantalla de inicio
- Algo como Twitter Bootstrap para Android?
- Eliminar la sombra de barra de notificación en la aplicación de Android
- ¿Cómo hacer que el menú de aplicaciones de Facebook sea nuevo en Android?
- ¿Puede Android WebView HTML influenciar las características del teclado o del teclado?
- Tono de cambio de imagen de Android para simular el botón de clic
- View.setEnabled (false) no funciona muy bien en android
- Android- Problema con reemplazo de tamaño de imagen en versiones android diferentes para el texto MultiAutoCompleteTextview
- ¿Cualquier forma más rápida de volcar la jerarquía de la interfaz de usuario?
' 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:
- Agregue la instancia de la barra de acción en el
final ActionBar actionBar = getActionBar();
código Javafinal ActionBar actionBar = getActionBar();
- Habilitar la opción de pantalla principal
actionBar.setDisplayShowHomeEnabled(false);
- 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"/>
- Android: ¿Alinear el botón en la parte inferior derecha de la pantalla usando FrameLayout?
- ¿Cuál es el propósito de "android.intent.category.DEFAULT"?