Скрытие проблемы с мягкой клавиатурой
У меня есть вид сетки, который содержит edittexts на активность, и ниже, что есть пользовательская клавиатура, как вы можете видеть в коде ниже, я добавил кнопки для ввода цифр. Но проблема в том, что программная клавиатура выскакивает всякий раз, когда я нажимаю на edittexts в виде сетки.
Я пытался положить android:windowSoftInputMode="stateHidden"
в файле манифеста, но он даже не скрывает программную клавиатуру в моем случае. Я ссылался на множество источников, включая stackru, даже не оставляя ни одного поста. Я думаю, что есть проблема в моем файле main.xml. Разве мы не можем скрыть это в детях gridview (я знаю, что это кажется глупым, но это последнее сомнение, которое я получаю после многих попыток). Может кто-нибудь подсказать, пожалуйста, где я иду не так? Буду очень признателен, если вы протестируете следующий код с вашим ответом, а затем предложите мне, если он работает.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/fLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:background="@drawable/background3">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="18dp"
android:numColumns="6"
android:verticalSpacing="0dp"
android:horizontalSpacing="1dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="@null"/>
</FrameLayout>
<FrameLayout
android:id="@+id/fLayout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="4"
android:background="@drawable/background2">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keypad"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TableRow>
<Button android:id="@+id/keypad_1"
android:text="1"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_2"
android:text="2"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_3"
android:text="3"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_4"
android:text="4"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_5"
android:text="5"
android:background="@drawable/custombutton">
</Button>
</TableRow>
<TableRow>
<Button android:id="@+id/keypad_6"
android:text="6"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_7"
android:text="7"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_8"
android:text="8"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_9"
android:text="9"
android:background="@drawable/custombutton">
</Button>
<Button android:id="@+id/keypad_10"
android:text="C"
android:background="@drawable/custombutton">
</Button>
</TableRow>
<TableRow>
<Button android:id="@+id/submit"
android:text="submit"
android:layout_span="5"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/custombutton">
</Button>
</TableRow>
</TableLayout>
</FrameLayout>
</LinearLayout>
1 ответ
Вы пытались добавить эту строку в onCreate()
метод?
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
ИЛИ ЖЕ
попробуйте то, что вы делали раньше в манифесте, но вместо stateHidden
записывать stateAlwaysHidden
ИЛИ ЖЕ
Вы пытались разместить onTouch
слушатель на EditText
? Если я не ошибаюсь, он "поглотит" сенсорное событие, и клавиатура не должна появиться. Что-то вроде:
editText_input_field.setOnTouchListener(otl);
private OnTouchListener otl = new OnTouchListener() {
public boolean onTouch (View v, MotionEvent event) {
return true; // the listener has consumed the event
}
};
взяты отсюда
дайте мне знать, если что-то работает:). Я подумаю о некоторых других решениях, если нет...