从Xamarin的TextView上的选择菜单中删除转换和共享选项



我正在使用 textisselectable 在textView上的属性,它允许用户复制文本视图的文本。现在,当我在TextView上longpress时,菜单具有复制,SelectAll翻译和共享选项。我不想在该菜单中翻译和共享选项。

我正在使用Xamarin进行开发,请帮助我..谢谢..

删除共享选项,您可以使用:

public override void OnActionModeStarted(ActionMode mode)
{
    IMenu menu = mode.Menu;
    menu.RemoveItem(Android.Resource.Id.ShareText);
    base.OnActionModeStarted(mode);
}

但是我找不到翻译ID,作为另一种选择,您可以自定义ContextMenu

public override void OnCreateContextMenu(IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo)
{
    base.OnCreateContextMenu(menu, v, menuInfo);
    MenuInflater.Inflate(Resource.Menu.cmenu, menu);
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/select_all"
        android:title="select all"
    />
    <item android:id="@+id/copy"
        android:title="copy"
     />
</menu>

单击菜单项时:

public override bool OnContextItemSelected(IMenuItem item)
{
    switch (item.ItemId)
    {
        case Resource.Id.select_all:
            //Select All the TextView text   
            return true;
        case Resource.Id.copy:
            ClipboardManager clipboard = (ClipboardManager)GetSystemService(ClipboardService);
            clipboard.Text = myTextView.Text;            
            return true;
        default:
            return base.OnContextItemSelected(item);
    }
}

最新更新