我的活动的布局包含EditText
和ListView
。最初,当活动开始时,会出现KeyBoard
。但我希望KeyBoard to appear only if the user touched the
EditText`区域写一些文本,否则解雇。如何实现这个目标?
答案 0 :(得分:0)
这是键盘的默认行为。如果它立即出现,你必须在xml或代码中有一些东西聚焦编辑文本。
答案 1 :(得分:0)
似乎这个问题突然出现了很多方法来修复它。我用各种方法解决了这个问题。最简单的方法是将以下属性放在我的父布局中(在我的例子中为LinearLayout):
<LinearLayout
android:bla bla bla other stuff
android:focusableInTouchMode="true"
>
</LinearLayout>
我还尝试过各种各样的事情,例如在我的AndroidManifest.xml中的Activity标记中设置以下属性(有时这样可行,但我认为这取决于您的API级别):
<activity
android:name="some.awesome.activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden"
android:label="@string/app_name">
甚至以编程方式(并且痛苦地)完成它:
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(someEditText1.getWindowToken(), 0);
imm.hideSoftInputFromWindow(someEditText2.getWindowToken(), 0);
希望其中一个有帮助!