C# Xamarin.Forms在Android上失去焦点时取消隐藏键盘

C# Xamarin.Forms在Android上失去焦点时取消隐藏键盘,c#,xamarin,xamarin.android,xamarin.forms,C#,Xamarin,Xamarin.android,Xamarin.forms,我在Xamarin.Forms上开发聊天应用程序。 我需要不隐藏键盘时,我按下发送按钮,并隐藏键盘时,我点击任何其他地方。 我为iOS做的。 我可以为android做同样的操作吗?您的PCL中可以有一个scrollview元素,您可以在其中添加输入元素,当您点击输入元素时,它将显示键盘而不是隐藏它,它只在点击屏幕的不同部分时隐藏它。让我知道如果它有助于找到一个非常简单的方法来实现这一目标,您只需在条目的顶部放置一个按钮,如下所示: <Grid VerticalOptions="End"&g

我在Xamarin.Forms上开发聊天应用程序。 我需要不隐藏键盘时,我按下发送按钮,并隐藏键盘时,我点击任何其他地方。 我为iOS做的。
我可以为android做同样的操作吗?

您的PCL中可以有一个scrollview元素,您可以在其中添加输入元素,当您点击输入元素时,它将显示键盘而不是隐藏它,它只在点击屏幕的不同部分时隐藏它。让我知道如果它有助于

找到一个非常简单的方法来实现这一目标,您只需在
条目的顶部放置一个
按钮
,如下所示:

<Grid VerticalOptions="End">
    <Entry x:Name="MessageEntry" TextChanged="MessageEntry_TextChanged_1" />
    <Button x:Name="SendButton" Text="Send" HorizontalOptions="End" Clicked="Button_Clicked" IsEnabled="False" />
</Grid>
在Android 6.0 emulator上测试,对我来说效果很好,您可以自定义
按钮
,使其在该视图中看起来更漂亮:


我不能将scrollview与listview一起使用。Listview滚动无法使用这种方式,您的文本将位于按钮下方。即使您将正确的填充设置为和按钮宽度相等的条目,此方法也不会每次都有效。这个问题还有其他解决办法吗?
private void Button_Clicked(object sender, EventArgs e)
{
    MessageEntry.Text = null;
}

private void MessageEntry_TextChanged_1(object sender, TextChangedEventArgs e)
{
    if (MessageEntry.Text != null)
        SendButton.IsEnabled = true;
    else
        SendButton.IsEnabled = false;
}