Xamarin Form textcell.contextactions text=";删除“;在android中不显示
我是xamarin forms的新手,通过使用iOS development Mac笔记本电脑制作的视频教程学习。我正在使用windows&VS2019制作xamarin forms。在使用ListView、TextCell和ContextActions时,当我在android emulator中选择名称时,我的mentuItem text=“Delete”或text=“Call”不会显示。但在iOS仿真器上选择名称的相同操作会使两个按钮(“删除”和“调用”)滑出。我附上了我的照片和导师的照片。以下是本教程中的代码 我的xaml文件是`Xamarin Form textcell.contextactions text=";删除“;在android中不显示,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我是xamarin forms的新手,通过使用iOS development Mac笔记本电脑制作的视频教程学习。我正在使用windows&VS2019制作xamarin forms。在使用ListView、TextCell和ContextActions时,当我在android emulator中选择名称时,我的mentuItem text=“Delete”或text=“Call”不会显示。但在iOS仿真器上选择名称的相同操作会使两个按钮(“删除”和“调用”)滑出。我附上了我的照片和导师的照片。
<? xml version = "1.0" encoding = "utf-8" ?>
< ContentPage xmlns = "http://xamarin.com/schemas/2014/forms"
xmlns: x = "http://schemas.microsoft.com/winfx/2009/xaml"
x: Class = "WarMemorial.Excercises.ListViewContextActions" >
< ListView x: Name = "listView" >
< ListView.ItemTemplate >
< DataTemplate >
< TextCell Text = "{Binding Name}"
Detail = "{Binding Status}" >
< TextCell.ContextActions >
< MenuItem Text = "Call" IconImageSource = "phone.png"
Clicked = "Call_Clicked"
CommandParameter = "{Binding .}" ></ MenuItem >
< MenuItem Text = "Delete"
Clicked = "Delete_Clicked" IconImageSource = "trash-can.png"
CommandParameter = "{Binding .}" ></ MenuItem >
</ TextCell.ContextActions >
</ TextCell >
</ DataTemplate >
</ ListView.ItemTemplate >
</ ListView >
</ ContentPage >
XAML.cs
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using WarMemorial.Models;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace WarMemorial.Excercises
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ListViewContextActions : ContentPage
{
private ObservableCollection<Contacts> _contacts;
public ListViewContextActions()
{
InitializeComponent();
_contacts = new ObservableCollection<Contacts> {
new Contacts { Name = "Susana" },
new Contacts { Name = "Sara", Status = "let's tallk" }
};
listView.ItemsSource = _contacts;
}
private void Call_Clicked(object sender, EventArgs e)
{
var contact = (sender as MenuItem).CommandParameter as Contacts;
DisplayAlert("Call", contact.Name, "OK");
}
private void Delete_Clicked(object sender, EventArgs e)
{
var contact = (sender as MenuItem).CommandParameter as Contacts;
_contacts.Remove(contact);
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Input;
使用暖室模型;
使用Xamarin.Forms;
使用Xamarin.Forms.Xaml;
这是一项非常有趣的运动
{
[XamlCompilation(XamlCompilationOptions.Compile)]
公共部分类ListViewContextActions:ContentPage
{
私人可观察收集联系人;
公共ListViewContextActions()
{
初始化组件();
_contacts=新的ObservableCollection{
新联系人{Name=“Susana”},
新联系人{Name=“Sara”,Status=“let's tallk”}
};
listView.ItemsSource=\u联系人;
}
已单击私有无效调用(对象发送方,事件参数e)
{
var contact=(发送方为MenuItem)。CommandParameter为Contacts;
显示警报(“呼叫”,联系人姓名,“确定”);
}
已单击私有无效删除(对象发送者,事件参数e)
{
var contact=(发送方为MenuItem)。CommandParameter为Contacts;
_触点。移除(触点);
}
}
}
正如@Jason所说,你无法在iOS和Android上获得相同的上下文操作行为,另一方面,你可能希望使用实验,这将使你在两个平台上获得相同的滑动行为。在iOS上,上下文操作是由滑动手势触发的,在Android上,它们是由长按触发的。@Jason非常感谢你,我是xamarin的新手,在尝试在iOS emulator上模拟相同的动作时,我总是被android emulator卡住,浪费时间。是否有任何链接可以帮助我更好地理解android emulator和iOS运营商的不同操作并节省时间(例如,在iOS emulator中刷卡与在android emulator中长按相同)?这些只是每个操作系统如何处理用户体验的根本区别。这不是Xamarin特有的。我肯定有一些文件概述了关键的区别,但我不知道有什么区别