sou*_*rar 6 android popupmenu android-menu android-actionbar overflow-menu
我正在尝试创建一个自定义弹出菜单,我想在操作栏的溢出菜单按钮上定位(如果重要的话,我正在使用Toolbarwith setSupportActionBar()for this).我发现这可以通过setAnchorView()(从" 溢出"菜单中读取" 自定义菜单"项)来完成.
但是,我似乎无法弄清楚如何检索溢出菜单作为一个视图(我可以用来设置锚点).
此外,我尝试将此锚定到活动本身的父布局,但它显示在左上方,菜单的高度等于操作栏的高度(这不是很有用).
有谁知道如何实现这一目标?
不用实际的溢出菜单,您可以“作弊”一点。在操作栏中有一个看起来像溢出图标的图标。您应该设置showAsAction为此MenuItem。在溢出图标的OnClick上,您将显示一个ListPopupWindow锚定到MenuItem视图的视图。如果ListPopupWindow没有显示出来,你想要它,你可以打电话ListPopupWindow.setHorizontalOffset()和ListPopupWindow.setVerticalOffset()
我同意Andrew Orobator的意见,因为它很可能需要"伪造",但我建议您在工具栏中添加实际视图,而不是尝试处理菜单项:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="@dimen/elevation_med">
<ImageView
android:id="@+id/overflow"
android:layout_width="2dp"
android:layout_height="2dp"
android:background="@drawable/overflow_icon"
android:layout_gravity="right"/>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以通过toolbar.findViewById(R.id.overflow)直接从工具栏中获取视图; 或类似的东西,然后将视图设置为您的锚点.这意味着您还必须设置自己的onClick侦听器,因为它不再获取onOptionsMenu()回调,但我认为这将是处理场景的最佳方法.
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |