Скрыть программную панель ввода в приложении Xamarin для Android в фокусе EditText
Я разрабатывал приложение Xamarin для Android, и моя деятельность содержит несколько правок. Когда я фокусирую текст редактирования, нажимая на него, появляется программная панель ввода, но я хочу, чтобы она всегда оставалась скрытой. Я уже пробовал с базовым кодом, но это не работает, и я также пробовал с CurrentFocus вместо edittext.
InputMethodManager keyboard = (InputMethodManager)GetSystemService(Context.InputMethodService);
keyboard.HideSoftInputFromWindow(txtWerf.WindowToken, HideSoftInputFlags.None);
Далее я попробовал с windowsoftinputmode в xml моего макета и в файле манифеста.
РЕДАКТИРОВАТЬ
<application android:label="WMS" android:icon="@drawable/Icon">
<activity android:name="Materiaal" android:windowSoftInputMode="stateAlwaysHidden"></activity>
</application>
У кого-нибудь есть идея?
3 ответа
Для каждого элемента управления Edittext вы можете установить для.ShowSoftInputOnFocus значение false, и при щелчке по тексту редактирования клавиатура не появится.
Попробуйте код ниже, который работает для меня.
Вы можете заставить Android скрывать виртуальную клавиатуру, используя InputMethodManager, вызывая hideSoftInputFromWindow, передавая маркер окна, содержащего ваше сфокусированное представление.
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Это заставит клавиатуру быть скрытой во всех ситуациях. Вы даже можете попробовать это в манифесте под вашей деятельностью.
android:windowSoftInputMode="stateAlwaysHidden"
Или вы можете просто использовать атрибут деятельности со свойством WindowSoftInputMode:
[Activity(WindowSoftInputMode = SoftInput.StateAlwaysHidden)]