android - 从xamarin表单android中的操作栏中的单击事件添加下拉菜单
问题描述
我在内容页面中添加了一个工具栏项:
<ContentPage.ToolbarItems>
<ToolbarItem IconImageSource="icon_dropdown.png"/>
</ContentPage.ToolbarItems>
我想要的是当用户单击工具栏项时,会弹出一个这样的菜单。以向下滑动显示内容/菜单项的方式制作动画。
我一直在网上搜索,但搜索的关键字总是将我带到微调器,并且是 C# 和 Xamarin 表单的新手,我不确定微调器是否仍然是我想要实现的目标,因为微调器看起来更像是一个对话框盒子。
我正在尝试做的事情的示例图像,我已经进行了 photoshop
非常感谢任何帮助。谢谢。
解决方案
我做了一些调查,找到了一种通过主题更改溢出弹出菜单位置的方法(代码附在最后以防需要),但无法更改宽度以匹配整个屏幕,不确定Android是否做了一些菜单的限制。
如果您需要一个与您的图片完全相同的下拉列表,spinner 可能也不是一个完美的选择,您最好创建一个覆盖原始活动的新活动并自定义新的活动布局,但不建议考虑性能。此外,您可以在较早的帖子中找到一些内容,看看它是否能给您任何想法。
添加新样式:
<style name="OverflowMenuStyle" parent="@style/ThemeOverlay.AppCompat.Light">
<item name="overlapAnchor">false</item><!--not overlay the toolbar-->
<!--<item name="android:dropDownWidth">10dp</item> not work-->
<!--<item name="android:maxWidth">400dp</item> not work-->
<item name="android:paddingRight">0dp</item>
<!--dropDownVerticalOffset is the property you want to avoid overlay the toolbar-->
<item name="android:dropDownVerticalOffset">4dp</item>
<item name="android:dropDownHorizontalOffset">0dp</item>
<item name="android:popupBackground">#BFBFBF</item>
</style>
Android 资源布局文件夹的 Toolbar.xml,将 popupTheme 更改为:
android:popupTheme="@style/OverflowMenuStyle"
在 MainTheme.Base 样式中添加一个项目:
<item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
推荐阅读
- python - 根据列表列表检查列表中是否存在组合
- neo4j - neo4j 3.* 企业版可以控制用户数据的访问权限吗?
- excel - 将 2 个 if 语句与 vlookups 结合起来
- php - 如何在 Laravel 5.5 中保存具有相同名称的属性值
- postgresql - 转换 Exec 参数 $2 类型:寻找值开头的无效字符“b”
- java - 如何使 FirestoreRecyclerAdapter 不适用于模型类?
- regex - Sublime 语法正则表达式仅突出显示分隔符内的匹配
- state - Flutter 中的状态更新
- crystal-reports - 会话中的水晶报表参数丢失
- python-3.x - couchdb 中 designdoc 和视图的变量名