0

我想创建一个 Xamarin 表单编辑器控件,当它被填充时会改变它的高度(当上一行中的空格完成时添加一个新行)。我只对WinPhoneAndroid Platfroms 感兴趣。

编辑器本身不支持此类属性。

我知道 Android 本机控件 (EditText) 支持它(不确定 WinPhone 变体 TextBox)。但我不确定如何实现它。

如果有人可以向我解释如何为这些平台创建渲染器,那将非常有帮助。

编辑

我找到了这个部分解决方案,它工作得很好,但不是那么自然(例如 Android 中的 EditText)。

class RoundedEditor : Editor
{
    public RoundedEditor()
    {
        this.TextChanged += (sender, e) => { this.InvalidateMeasure(); };
    }
}

如果有人能提供更好的解决方案,我会很高兴。

编辑 2

以下是它现在如何工作的结果:

UWP

写第一行:

第一行文字

按回车:

第二行文字

上一行没有像我想要的那样完全显示。

安卓

在android中它实际上工作得很好:

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

您将必须实现自定义 Android EditText,然后将其用于您的 XamarinForms 控件(通过为其实现自定义渲染器)

看看这个可调整大小的 EditText 的实现: https ://github.com/ViksaaSkool/AutoFitEditText

显然,您必须将其翻译成 C#,但这是一个很好的起点。

于 2017-07-16T11:28:48.730 回答