Как сделать раскрывающуюся кнопку в xamarin.forms?

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

В официальном приложении Reddit для Android (возможно, и для iOS) есть именно то, что я хочу реализовать.

Я бы вставил изображения, но мне нужно 10 репутации

Imgur Альбом скриншотов из официального приложения Reddit

Я хотел бы подчеркнуть, что кнопка накладывается на то, что кажется TabbedPage, остается на месте при прокрутке вкладок. Существует также анимация при первоначальном нажатии кнопки, которую я также хотел бы реализовать.

После некоторых дополнительных исследований я обнаружил, что это пример того, что называется "Микровзаимодействия". 5-й пример в этой статье - это то, что я ищу.

Цель этого поста

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

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


person Zach Zimmermann    schedule 20.08.2017    source источник
comment
К сожалению, это не поддерживается в Xamarin.Forms. Имейте в виду, что Xamarin.Forms нацелен на общие знаменатели всех платформ в отношении элементов пользовательского интерфейса. Хотя Android SDK поддерживает ваше требование в виде FloatingActionButton   -  person Demitrian    schedule 20.08.2017


Ответы (1)


Как уже упоминал Демитриан, что-то подобное не входит в область применения Xamarin.Forms. Однако существует библиотека Xamarin.Forms с реализацией плавающей кнопки действия как для Android, так и для iOS. Взгляните на это здесь.

Если по умолчанию нет контроля над тем, чего вы пытаетесь достичь, вы можете создать собственный модуль визуализации для каждой платформы, которую вы хотите поддерживать. Дополнительные сведения о пользовательских средствах визуализации см. в официальной документации.

В случае с библиотекой, на которую я ссылался, разработчик создал ссылку настраиваемый элемент управления iOS, производный от класса UIControl и переопределяющий определенные методы, такие как LayoutSubviews, TouchesBegan, TouchesEnded и т. д. В средстве визуализации он создает новый экземпляр этого элемента управления и устанавливает его как собственный элемент управления, который XF показывает в iOS.

В Android разработчик происходит от класса ImageButton и идет оттуда. Вот ссылки, которые вы должны проверить: Визуализатор iOS, Средство визуализации Android и пример проекта

Обратите внимание, что библиотека больше не поддерживается активно, поэтому для ее работы может потребоваться некоторая работа.

person Timo Salomäki    schedule 20.08.2017