如何限制键盘/键盘的存在

时间:2014-06-06 19:22:14

标签: android android-softkeyboard

我的活动的布局包含EditTextListView。最初,当活动开始时,会出现KeyBoard。但我希望KeyBoard to appear only if the user touched the EditText`区域写一些文本,否则解雇。如何实现这个目标?

2 个答案:

答案 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);

希望其中一个有帮助!