如何在需要时隐藏编辑器上的键盘

时间:2018-08-29 09:10:22

标签: xamarin.forms

我使用Xamarin开发。

当我点击Editor时,会显示控制键盘。我想在用户编写消息并单击时输入内容,以便当用户不确定要编写任何内容时,keyobard会消失,甚至以某种方式隐藏键盘。

反正这样做吗?

2 个答案:

答案 0 :(得分:0)

您尝试一下。首先在共享项目中创建界面

public interface IKeyboardHelper
{
    void HideKeyboard();
}

通过添加新的iOSKeyboardHelper.cs文件在iOS项目中实现了此目的

public class iOSKeyboardHelper : IKeyboardHelper
{
    public void HideKeyboard()
    {
        UIApplication.SharedApplication.KeyWindow.EndEditing(true);
    }
}

现在通过添加新文件DroidKeyboardHelper.cs

在您的android项目中实现相同的功能
public class DroidKeyboardHelper : IKeyboardHelper
{
    public void HideKeyboard()
    {
        var context = Forms.Context;
        var inputMethodManager = context.GetSystemService(Context.InputMethodService) as InputMethodManager;
        if (inputMethodManager != null && context is Activity)
        {
            var activity = context as Activity;
            var token = activity.CurrentFocus?.WindowToken;
            inputMethodManager.HideSoftInputFromWindow(token, HideSoftInputFlags.None);    
            activity.Window.DecorView.ClearFocus();
        }
    }
}

在共享项目中,无论何时需要,都可以像这样调用您的方法。

DependencyService.Get<IKeyboardHelper>().HideKeyboard()

访问thisthis以获得更多信息。

答案 1 :(得分:0)

您也可以使用

java.util.Collections.reverse(arrayToListObject(response))