1.介绍
我在项目中,遇到 页面打开,输入框默认获取焦点,但是不需要弹出软键盘,以便用于扫描的需要,以下是代码。
2.解决方案
1.创建 一个接口文件 IPlatformInfo.cs ,定义一个函数,比如 getRequestFocus
public interface IPlatformInfo
{
void getRequestFocus();
}
2.引用Plugin.CurrentActivity
在 android 的 MainActivity.cs修改成
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
//添加
CrossCurrentActivity.Current.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
3.android下创建 PlatformInfo.cs 文件 ,代码如下:
public void getRequestFocus()
{
InputMethodManager imm = InputMethodManager.FromContext(CrossCurrentActivity.Current.Activity.ApplicationContext);
imm.HideSoftInputFromWindow(CrossCurrentActivity.Current.Activity.Window.DecorView.WindowToken,HideSoftInputFlags.NotAlways);
}
4.ContentPage页面调用
public static void hideSoftKeyboard(Entry entry) {
Device.StartTimer(TimeSpan.FromMilliseconds(100), () => {
DependencyService.Get<IPlatformInfo>().getRequestFocus();
return false;
});
entry.Focus();
}
以上代码就可以实现默认隐藏软键盘了!欢迎大家提问题,请多多点赞、打赏
哦!