Добавление выпадающего меню из события щелчка на панели действий в формах xamarin android - PullRequest
0 голосов
/ 28 февраля 2020

Я добавил элемент панели инструментов на своей странице содержимого:

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

То, что я хочу получить, - это когда пользователь нажимает на элемент панели инструментов, появляется следующее меню. Анимированный таким образом, что он скользит вниз, показывая содержимое / пункты меню.

Я искал в Интернете, но поиск по ключевым словам всегда приводит меня к центру, и, будучи новичком в C# и формах Xamarin, я Я не уверен, что спиннер по-прежнему является тем, что я хочу достичь, потому что спиннер выглядит скорее как диалоговое окно.

Пример изображения того, что я пытаюсь сделать, - фотошоп

Любая помощь высоко ценится. Спасибо.

1 Ответ

0 голосов
/ 02 марта 2020

Я провел некоторое исследование и нашел способ изменить положение всплывающего меню по теме (код, прикрепленный в конце, если вам это нужно), но не смог изменить ширину, чтобы соответствовать всему экрану, не уверен, что Android сделал некоторые ограничения в меню.

Если вам нужен выпадающий список, точно такой же, как на вашей картинке, спиннер тоже может не быть идеальным выбором, вам лучше создать новое действие, которое накладывается на исходное действие, и настроить новый макет действия, но это не рекомендуется, учитывая производительность. Кроме того, вы можете найти что-то в более раннем посте , чтобы узнать, дает ли это вам какую-либо идею.

добавить новый стиль:

  <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 Расположение ресурсов Панель инструментов папки. xml, измените popupTheme на:

android:popupTheme="@style/OverflowMenuStyle"

добавьте элемент в стиле MainTheme.Base:

<item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
...