【问题标题】:Remove Translate and share options from selection menu on textview in xamarin从 xamarin 中 textview 上的选择菜单中删除翻译和共享选项
【发布时间】:2017-11-30 16:17:34
【问题描述】:

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

我正在使用 xamarin 进行开发,请帮助我.. 在此先感谢..

【问题讨论】:

    标签: android xamarin textview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2015-04-04
      相关资源
      最近更新 更多