¿El menú de desbordamiento de Android está situado encima de barra de herramientas / barra de herramientas?

Esta es mi primera pregunta de desbordamiento de pila. Desnuda conmigo si no agrego lo suficiente o agrego demasiados detalles.

Estoy intentando que mi menú de desbordamiento aparezca debajo de la barra superior de mi aplicación. Cuando estaba usando el tema de Holo hizo esto muy bien, pero estoy tratando de conseguir mi aplicación para utilizar el diseño de materiales utilizando la librería appcompat v7.

Así que ahora mi tema se extiende desde AppCompat:

<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/ucla_blue</item> <item name="colorAccent">@color/caldroid_white</item> <item name="android:actionMenuTextColor">@color/caldroid_black</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> </resources> 

Y esto aplica correctamente el tema de diseño de material a mi barra de herramientas en este diseño:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/linearlayout_root_main" android:layout_height="match_parent" android:layout_width="match_parent"> <!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. --> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_height="match_parent" android:layout_width="match_parent" tools:context="com.ucla.ieee.app.MainActivity"> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/colorPrimary" android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="fill_parent" android:minHeight="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> <!-- As the main content view, the view below consumes the entire space available using match_parent in both dimensions. --> <FrameLayout android:id="@+id/container" android:layout_height="match_parent" android:layout_width="match_parent"/> </LinearLayout> <!-- The navigation drawer --> <fragment android:id="@+id/navigation_drawer" android:layout_gravity="start" android:layout_height="match_parent" android:layout_marginTop="?attr/actionBarSize" android:layout_width="@dimen/navigation_drawer_width" android:name="navigation.NavigationDrawerFragment" tools:layout="@layout/fragment_navigation_drawer"/> </android.support.v4.widget.DrawerLayout> </LinearLayout> 

Pero por alguna razón, el menú que hincho en onCreateOptionsMenu aparece en el lugar equivocado. Al parecer, no puedo publicar imágenes, pero básicamente el menú de desbordamiento cubre la barra de herramientas en lugar de aparecer justo debajo de la barra de herramientas. Esto comenzó a suceder cuando utilizo "Theme.AppCompat" primero en una ActionBar normal e incluso ahora con una barra de herramientas.

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); switch (selected) { case FRONT_PAGE: toolbar.inflateMenu(R.menu.main_settings); return false; case ANNOUNCEMENTS: toolbar.inflateMenu(R.menu.refresh_settings); return false; case MEMBERSHIP: toolbar.inflateMenu(R.menu.edit_member); return false; case CALENDAR: toolbar.inflateMenu(R.menu.refresh_settings); return false; case POINTS_REWARDS: toolbar.inflateMenu(R.menu.main_settings); return false; case HELP: toolbar.inflateMenu(R.menu.main_settings); return false; default: toolbar.inflateMenu(R.menu.main_settings); } 

No parecía encontrar a nadie experimentando esto también, espero que alguien me puede ayudar a averiguar esto! ¡Gracias!

He aquí un ejemplo de uno de mis menús:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context="com.ucla_ieee.app.MainActivity"> <item android:id="@+id/action_refresh" android:title="@string/action_refresh" app:showAsAction="never" /> </menu> 

Según las especificaciones de diseño del material (consulte la sección Menús):

Un menú es una hoja de papel temporal que siempre se superpone a la barra de aplicaciones, en lugar de comportarse como una extensión de la barra de aplicaciones.

Barra de aplicaciones de superposición de menú

Así que lo que está viendo es el diseño de material correcto para los menús.

Echa un vistazo a la respuesta de @Girish Kumar en Cómo puedo colocar el menú de desbordamiento debajo de la barra de herramientas en lugar del menú de desbordamiento para superponer la barra de aplicaciones . Desplazar el menú de desbordamiento a la parte inferior de la barra de aplicaciones es definitivamente posible.

Si cambia el tema de Actividad en manifesto, el menú de desbordamiento aparece debajo de la barra de acciones

 android:theme="@android:style/Theme.Holo.Light" 
  • Cómo utilizar el diseño de material en la aplicación de Android?
  • ¿Cómo cambiar el color de fondo de la cafetería?
  • ? Android: attr / selectableItemBackground no es lo suficientemente visible sobre un fondo oscuro
  • Cómo crear las pestañas de la barra de herramientas con ViewPager en el diseño del material
  • CollapsingToolbarLayout | Aspectos de desplazamiento y diseño
  • ¿Cómo obtener una barra de progreso bajo el ActionBar en Material Design?
  • Lollipop Barra de progreso Tinción
  • Cómo resaltar el elemento seleccionado de Recycler View?
  • Navegación inferior Ver resaltar elemento seleccionado
  • Canot resolver android.support.v7.internal.widget.TintImageView
  • ¿Dónde puedo encontrar y descargar iconos de diseño de material para mi aplicación para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.