【问题标题】:Create a size changing Editor in Xamarin在 Xamarin 中创建大小更改编辑器
【发布时间】:2017-12-14 02:31:42
【问题描述】:

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

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

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

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

编辑

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

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

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

编辑 2

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

UWP

写第一行:

按回车键:

上一行没有按照我的意愿完全显示。

安卓

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

【问题讨论】:

  • 您可以找到自定义解决方案以获取更多详细信息,请查看此链接-developer.xamarin.com/guides/xamarin-forms/…
  • 我知道渲染器,但我不知道如何具体地使用渲染器在编辑器中启用调整大小选项,这意味着我不知道在渲染器中编写什么代码。
  • 好的,我们可以通过XLap控件获取帮助,这里是github URL-github.com/XLabs/Xamarin-Forms-Labs/wiki/ExtendedEntry
  • “我找到了这个部分解决方案,它工作得很好,但它不是那么自然(例如 Android 中的 EditText)。”,为什么你认为它不那么自然?您的代码运行良好。
  • 效果更好,但并不完美。例如,当我按下回车键时,我可能只看到前一行的一半(下半部分)。我会将图片添加到 ilustrate。

标签: xamarin xamarin.android xamarin.forms xamarin.winphone xamarin.windows


【解决方案1】:

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

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

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

【讨论】:

  • 其实我的安卓版本运行良好。我目前的问题是uwp版本。
  • 你对 uwp 有什么想法吗?
猜你喜欢
  • 2012-04-16
  • 1970-01-01
  • 2010-10-15
  • 2015-09-13
  • 2022-08-14
  • 1970-01-01
  • 2019-06-03
  • 2011-07-04
  • 2011-06-22
相关资源
最近更新 更多