从xamarin形式的android动作栏中的click事件添加下拉菜单

问题描述 投票:0回答:1

我在内容页面中添加了工具栏项目:

<ContentPage.ToolbarItems>
    <ToolbarItem IconImageSource="icon_dropdown.png"/>
</ContentPage.ToolbarItems>

我想拥有的是,当用户单击工具栏项目时,这样会弹出一个菜单。以向下滑动的方式显示动画,以显示内容/菜单项。

我一直在网上搜索,但是搜索到的关键字总是将我带到微调器,而对于C#和Xamarin Forms来说,这是我的新手,我不确定微调器是否仍然是我想要实现的目标,因为微调器看起来更多一个对话框。

Sample image of what I'm trying to do that I've photoshopped

非常感谢您的帮助。谢谢。

android xamarin xamarin.forms android-actionbar
1个回答
0
投票

我进行了一些调查,找到了一种通过主题更改溢出popmenu位置的方法(如果需要的话,请在末尾附加代码),但是无法更改宽度以匹配整个屏幕,不确定是否使用Android在菜单上做了一些限制。

如果您需要与图片完全相同的下拉列表,则微调器也可能不是理想的选择,最好创建一个覆盖原始活动并自定义新活动布局的新活动,但不建议考虑性能。另外,您可以在earlier post中找到某些内容,看看是否有任何想法。

添加新样式:

  <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>
© www.soinside.com 2019 - 2024. All rights reserved.