从xamarin中的textview上的选择菜单中删除翻译和共享选项

时间:2017-11-29 07:08:12

标签: android xamarin textview

我在textview上使用 textIsSelectable 属性,它允许用户复制textview的文本。现在,当我在textview上长按时,菜单有复制,selectAll翻译和共享选项。我不想在该菜单中翻译和分享选项..

我正在使用xamarin进行开发,请帮助我..提前致谢..

1 个答案:

答案 0 :(得分:0)

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

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);
    }
}