如何将焦点设置为Xamarin形式的条目

时间:2019-02-11 10:46:30

标签: xamarin.forms xamarin.android xamarin.ios focus

我想在我的输入字段中添加focus(),当我添加entry.Focus()时,它在页面顶部的输入项中工作正常。但是,当到达底部时,它并不能顺利进行。我也尝试过使用SoftInput方法,但是它会将条目隐藏在底部,并且当页面只有一个或两个条目时,设计也会发生变化。

请帮助我

2 个答案:

答案 0 :(得分:1)

@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));
}

答案 1 :(得分:0)

如果页面上只有两个条目,则只需在顶部条目中添加一个JSONDecoder事件,然后在该事件中调用Completed作为底部条目。所以代码是这样的:

MainPage.xaml:

entry.Focus()

MainPage.xaml.cs

<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>

如果您有2个以上的条目,并且想要在按键盘上的“完成”时关注下一个条目,则也可以参考this