¿Cómo forzar a PopupMenu a superponerse al ancla?
¿Cómo forzar a PopupMenu a superponerse al ancla? Me gustaría recrear algo similar a esto :
El ajuste de superposiciónAnchor me permitió superponer la vista de anclaje sin establecer el offset:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" parent="@style/Widget.AppCompat.Light.PopupMenu"> <item name="overlapAnchor">true</item> </style>
El PopupMenu envuelve una ListPopupWindow dentro de ella. Este ListPopupWindow envuelve AppCompatPopupWindow utilizando este atributo overlapAnchor. Todo esto en la biblioteca de soporte.
Alternativa a la respuesta de Paritosh Tonk :
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu.Overflow</item> </style>
O para el tema oscuro:
<style name="AppTheme.Dark" parent="Theme.AppCompat.NoActionBar"> <item name="popupMenuStyle">@style/Widget.AppCompat.PopupMenu.Overflow</item> </style>
Configuración de android:dropDownVerticalOffset
me permitió superponer la vista de anclaje:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" parent="@style/Widget.AppCompat.Light.PopupMenu"> <item name="android:dropDownVerticalOffset">-36dip</item> </style>
¿Has mirado usando PopupWindow en su lugar? Los que ofrecen un poco más de flexibilidad en su colocación. Puede especificar la vista de anclaje y un desplazamiento x e y que le permitirán definir la superposición.
Vine aquí al tratar de averiguar cómo crear un menú emergente que superpone su ancla cuando el ancla está en la barra de acción. Dado que este es un resultado de búsqueda prominente para ese problema, quiero dejar la respuesta aquí, aunque no estoy seguro de si la solución funcionaría para OP.
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- This item will expand into a submenu --> <item android:id="@+id/anchor" android:icon="@drawable/ic_anchor" android:title="@string/anchor" app:showAsAction="always"> <menu> <item android:id="@+id/subMenuItemOne" android:showAsAction="never" android:title="SubMenuItemOne"/> <item android:id="@+id/subMenuItemTwo" android:showAsAction="never" android:title="SubMenuItemTwo"/> </menu> </item> </menu>