Xamarin表格 - 滑出菜单选择项目

时间:2018-05-07 18:09:06

标签: xamarin xamarin.forms

我有一个xamarin表单应用程序搜索屏幕,允许用户从列表中选择一个项目。目前我正在使用选项列表,用户必须滚动并选择并单击完成。这是使用本机控件。 Howerver我在iOS中已经注意到设置菜单等已经设计好它,当用户想要从列表中选择时,右侧会显示一个箭头,将它们带到另一个页面以从中选择一个项目。名单。对我来说这似乎是一个更好的用户体验。这是一个例子:

enter image description here

我的问题是,这种内置xamarin形式的内容是什么?我想我可以创建一个列表视图,然后点击传递到另一个页面。任何例子都表示赞赏。

1 个答案:

答案 0 :(得分:1)

没有内置功能,但要实现这一目标并不难。

要设置公开指示符(箭头),请实现从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;
}

当用户点击该单元格时,您应该以模态方式导航到显示语言列表的视图。

添加取消 -Button也不是很难,但还需要另一步。您需要将新语言选择页面包装在NavigationPage中并以模拟方式推送NavigationPage。此外,您必须将工具栏项添加到包装页面(see here)。

在页面中有一个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知识。