隐藏Android的默认键盘
问题描述:
我使用Xamarin和C#:隐藏Android的默认键盘
我创建了一个自定义键盘Keyboardview并希望从不断弹出禁用Android的默认softkeyboard。
此活动包含约60行的EditText。
这似乎不起作用,它会出现,一旦我点击另一个EditText。
Window.SetSoftInputMode (SoftInput.StateAlwaysHidden);
我KeyboardView:
protected override void OnCreate (Bundle bundle){
Window.SetSoftInputMode (SoftInput.StateAlwaysHidden);
base.OnCreate (bundle);
SetContentView (Resource.Layout.ORDER);
mKeyboardView = this.FindViewById<KeyboardView> (Resource.Id.keyboardview);
mKeyboardView.Keyboard = mKeyboard;
mKeyboardView.PreviewEnabled = false;
var keyboardListener = new MyKeyboardListener(this);
mKeyboardView.OnKeyboardActionListener = keyboardListener;
}
答
您可以拨打点击这个方法,隐藏系统键盘,然后打电话给你的自定义键盘:
private void MakeEditable(bool isEditable, EditText et)
{
var imm = (InputMethodManager)GetSystemService(InputMethodService);
if (isEditable)
{
et.Focusable = true;
et.Enabled = true;
et.Clickable = true;
et.FocusableInTouchMode = true;
et.SetSelection(et.Text.Length);
et.RequestFocus();
imm.ShowSoftInput(et, ShowFlags.Implicit);
}
else
{
et.Focusable = false;
et.FocusableInTouchMode = false;
et.Clickable = true;
imm.HideSoftInputFromWindow(et.WindowToken, HideSoftInputFlags.None);
}
}
很难给你的意见不知道你在做什么。所有删除软键盘的方法都会以某种肮脏的黑客行为结束,并可能对您的应用程序产生影响。所以这里是我的问题: 当你关注你的EditText时,应该发生什么? –
没有什么应该发生,因为我有一个自定义的键盘,总是会在那里。现在的问题是,屏幕上有两个键盘,我的自定义键盘和默认键盘,我想禁用显示的默认键盘。我只是希望它在单个活动中被禁用。 –