我想将focus()
添加到我的输入字段中,当我添加entry.Focus()
时,它在页面顶部的输入中可以正常工作。但是,当到达底部时,它不能顺利运行。我也尝试了使用SoftInput
方法,但它会将条目隐藏在底部,并且当页面只有一个或两个条目时,设计也会发生变化。
请帮助我
@ AbbyWang的答案是正确的,也可以使用ReturnCommand
属性。
<StackLayout
Orientation="Vertical">
<Entry
x:Name="firstLabel"
ReturnType="Next"
FontSize="Small"
TextColor="Black" />
<Entry
x:Name="secondLabel"
ReturnType="Done"
FontSize="Small"
TextColor="Black" />
</StackLayout>
以及后面的代码
public YourPage()
{
InitializeComponent();
this.firstLabel.ReturnCommand = new Command(() => this.secondLabel.Focus());
// or you can use this to call a command on your viewmodel
this.secondLabel.ReturnCommand = new Command(() => YourViewModel.SomeCommand.Execute(null));
}
如果页面上只有两个条目,则只需在顶部条目中添加Completed
事件,然后在此事件中为底部条目调用entry.Focus()
。所以代码是这样的:
MainPage.xaml:
<StackLayout>
<StackLayout Orientation="Horizontal" VerticalOptions="Start">
<!-- Place new controls here -->
<Entry Text="top" x:Name="TopEntry"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand"
Completed="Entry_Completed" />
</StackLayout>
<StackLayout Orientation="Horizontal" VerticalOptions="End">
<!-- Place new controls here -->
<Entry Text="Bottom" x:Name="BottomEntry"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
MainPage.xaml.cs
void Entry_Completed(object sender, EventArgs e)
{
BottomEntry.Focus();
}
如果您有两个以上的条目,并且要在按键盘上的“完成”时关注下一个条目,则也可以参考this。