【问题标题】:Copy/Cut/Paste not available when editor is nested in a ScrollView in Xamarin.Android当编辑器嵌套在 Xamarin.Android 的 ScrollView 中时,复制/剪切/粘贴不可用
【发布时间】:2020-07-24 13:12:10
【问题描述】:

所以我的 xaml 看起来像这样

<ContentPage.Content>
    <ScrollView>
        <StackLayout>
            <Editor>

            </Editor>
        </StackLayout>
    </ScrollView>
</ContentPage.Content>

剪切/复制/粘贴选项在编辑器中长按时不可用,但在删除 ScrollView 时它可以正常工作。有没有解决的办法?也许使用自定义渲染器,因为我似乎不是唯一一个有问题的人

【问题讨论】:

  • 似乎是你发现的一个错误。它可以在 iOS 上运行吗?
  • 尚未在 iOS 上尝试过,但从所有迹象来看,这似乎是 Android 问题,因为我不是唯一面临此问题的人。甚至还有一个开放的 Github 问题。我只是想为我现在正在做的项目找个工作。
  • 能否分享github问题的链接。对于解决方法,您可以做很多事情,这取决于您尝试修复的解决方案 - 您可以尝试为编辑器使用自定义控件,以便它使用 Android EditText 并包含属性和您需要的功能
  • 我在问题中添加了一些关于如何在 Xamarin 中解决问题的 cmets。对于解决方法,您能否将布局拆分为 3,以便其滚动视图、包含编辑器的堆栈布局,然后是另一个滚动视图?

标签: android xamarin scrollview editor


【解决方案1】:

您可以使用 CustomRenderer 来实现它。

public class CustomEditorRenderer : EditorRenderer, Android.Views.View.IOnLongClickListener
{
    public CustomEditorRenderer(Context context) : base(context)
    {
    }


    protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
    {
        base.OnElementChanged(e);
        if (Control != null) { 

            Control.SetOnLongClickListener(this);

        }
    }
    public bool OnLongClick(Android.Views.View v)
    {
        Control.SetTextIsSelectable(true);
        return false;
    }

}

【讨论】:

  • 非常感谢。这行得通。但后来我的其他输入模式(语音到文本)停止工作。我仍在努力解决这个问题。
  • 你可以为这个编辑器创建一个单独的渲染器
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2013-05-13
  • 1970-01-01
相关资源
最近更新 更多