创建"简单菜单"根据材料设计规范

时间:2016-02-02 15:10:03

标签: android material-design

根据此http://www.google.com/design/spec/components/menus.html#menus-simple-menus,第一个菜单项与原始行的垂直中心对齐,如下所示: first popup menu vertically aligns with item

我尝试为<a />项目创建此菜单,点击这样:

ListView

然而,根据规范,菜单没有正确显示: popup menu does not appear centered

如何使菜单完全按照要求显示?

3 个答案:

答案 0 :(得分:2)

我做了一点搜索,请参阅:http://developer.android.com/reference/android/widget/PopupMenu.html

  

PopupMenu在模式弹出窗口中显示Menu   查看。如果有空间,,则弹出窗口将显示在锚点视图下方   在它之上如果没有。如果IME可见,则弹出窗口不会   重叠它直到它被触摸。触摸弹出窗口外面会   解雇它。

正如doc所说,似乎是正常的当有空间时,它会显示在视图下方( 就像你的情况一样 < / strong>)如果没有roow,它会在视图上方显示

答案 1 :(得分:0)

这实际上是可能的:

<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
    <item name="android:dropDownHorizontalOffset">12dp</item>
</style>

PopupMenu pm = new PopupMenu(context, view, 0, 0, R.style.MyPopupMenu);

答案 2 :(得分:0)

根据您的布局可能可行的另一种解决方案: 如果你可以在可以从当前代码上下文中引用的可点击视图上方插入一个零大小的间隔符,你可以使用它作为你的&#34;锚点#34; view(在PopupMenu构造函数中设置的那个)以实现http://www.google.com/design/spec/components/menus.html#menus-simple-menus上描述的内联效果