Xamarin Forms - выдвигающееся меню для выбора пунктов - PullRequest
0 голосов
/ 07 мая 2018

У меня есть экран поиска приложения форм xamarin, который позволяет пользователю выбрать элемент из списка. В настоящее время я использую список выбора, и пользователь должен прокрутить, выбрать и нажать «Готово». Это использует родные элементы управления. Однако, я заметил в iOS в меню настроек и т. Д., Где он спроектирован так, что, когда пользователь хочет выбрать из списка, справа отображается стрелка, которая переносит его на другую страницу, чтобы выбрать элемент (ы) из список. Мне это кажется лучшим UX. Вот пример:

enter image description here

У меня вопрос, есть ли что-то встроенное в эти формы ксамарина? Я думаю, я мог бы создать просмотр списка и затем перейти на другую страницу. Любые примеры приветствуются.

1 Ответ

0 голосов
/ 08 мая 2018

Нет встроенного для этого, но это не так сложно достичь.

Чтобы установить индикатор раскрытия (стрелка), внедрите пользовательский рендер, полученный из ImageCellRenderer, и переопределите GetCell

public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
    var viewCell = base.GetCell(item, reusableCell, tv);

    viewCell.Accessory = UITableViewCellAccessory.DisclosureIndicator;

    return viewCell;
}

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

Добавление этого Отмена -Кнопка тоже не очень сложная, но требует еще одного шага. Вам нужно будет обернуть новую страницу выбора языка в NavigationPage и нажать эту NavigationPage модально. Кроме того, вам придется добавить элемент панели инструментов на завернутую страницу ( см. Здесь ).

На странице есть представление SearchBar и ListView под ним. Чтобы добавить флажки, вам нужно реализовать пользовательскую ячейку с пользовательским средством визуализации (полученным из ImageCellRenderer, как показано выше), задав для UITableViewCell.Accessory значение Checkmark, если выбрана пользовательская ячейка

if(item is SelectableCell selectableCell)
{
    var selected = selectableCell.IsSelected;
    viewCell.Accessory = selected ? UITableViewCellAccessory.Checkmark : UITableViewCellAccessory.Checkmark;
}

Обратите внимание : Выбираемая ячейка - это не ячейка запаса Xamarin.Forms, а ячейка, которую вы должны реализовать самостоятельно, включая свойство привязки IsSelected.

Это должны быть в основном шаги, необходимые для достижения того, чего вы хотите. Я принял базовые знания Xamarin.Forms, необходимые для заполнения пробелов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...