xamarin.forms - Xamarin 表单条目返回类型未按预期工作
问题描述
我尝试在 Xamarin Forms 3 中设置新功能,ReturnType
并且我已将其设置为Next
. 我的表单有多个字段,我想让下一个条目在按下Next按钮时成为焦点。但是它只是关闭键盘。我确实阅读了这些文件,但是我找不到将其重点放在下一个的方法Entry
。有人可以指导吗?
提前致谢。
解决方案
想知道我是怎么实现的,如下:
我创建了一个行为来处理OnAttachedTo
andOnDetachingFrom
以便我可以处理Completed
事件以移动焦点。现在为此,我需要一个BindableProperty
. 我根据逻辑创建了以下代码:
public class NextEntryBehavior : Behavior<Entry>
{
public static readonly BindableProperty NextEntryProperty = BindableProperty.Create(nameof(NextEntry), typeof(Entry), typeof(Entry), defaultBindingMode: BindingMode.OneTime, defaultValue: null);
public Entry NextEntry
{
get => (Entry)GetValue(NextEntryProperty);
set => SetValue(NextEntryProperty, value);
}
protected override void OnAttachedTo(Entry bindable)
{
bindable.Completed += Bindable_Completed;
base.OnAttachedTo(bindable);
}
private void Bindable_Completed(object sender, EventArgs e)
{
if (NextEntry != null)
{
NextEntry.Focus();
}
}
protected override void OnDetachingFrom(Entry bindable)
{
bindable.Completed -= Bindable_Completed;
base.OnDetachingFrom(bindable);
}
}
如您所见,有一个NextEntry
属性,一旦用户使用 Next 按钮将其标记为完成,我们通过 XAML 使用它来关注所需的输入字段。
XAML:
<Entry ReturnType="Next">
<Entry.Behaviors>
<behaviors:NextEntryBehavior NextEntry="{x:Reference LastName}" />
</Entry.Behaviors>
</Entry>
在上述行为中,我使用的 LastName 引用是当用户点击 Next 时焦点应该转到的控件。通过这种方式,它可以按预期工作,并且可以在整个项目中重复使用。
推荐阅读
- mysql - 如何使用 Ruby on Rails 为 mySql 组子句中的日期起别名?
- sql-server - SQL Server 标识列插入
- c - 无法从管道读取,以及另一个标准输入问题
- javascript - 如何使用 Rollup.js 构建带有子文件夹(如 MateriaUI)的 npm 库
- ruby-on-rails - 从 Rails 中的 .cer 文件解码 JWT 令牌
- mysql - 表上的简单 Sql 查询:AVG、COUNT、VIEW
- azure - Azure 管道重新运行失败的任务(不是整个阶段)
- apollo-client - 按ID以外的字段查询缓存?
- python - 在 Python 中使用 RarFile 提取单个文件时出现 BadRarFile
- python - Raspberry Pi 4 控制伺服而不晃动