当特定的EditText被触摸时,我不希望软键盘出现。但是我仍然希望能够在用户请求时显示软键盘(比如按下按钮)并允许用户编辑文本。
我知道如何显示/隐藏软键盘,只是不知道如何防止它在触摸时出现。
有什么建议吗?
一般的想法是用户将主要使用文本中的选择/位置,并只偶尔输入字符。当选择或导航文本时,我不希望软键盘减少可见的文本量。
一般的想法是用户将主要使用文本中的选择/位置,并只偶尔输入字符。当选择或导航文本时,我不希望软键盘减少可见的文本量。
简单使用
txtEdit.setShowSoftInputOnFocus(false);
当您想要启用它时,请反转上述过程。
editText.setShowSoftInputOnFocus(false);
AndroidManifest.xml windowSoftInputMode
Android清单文件{{link1:windowSoftInputMode}}
<activity android:name=".MyActivity" android:windowSoftInputMode="adjustPan"> </activity>
尝试下面的代码,它可以隐藏键盘:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
为什么不禁用EditText。这样它就不会在点击时显示键盘。你可以这样做:
android:editable="false" //from xml
et.setEnabled(false); //from activity
然后在您的按钮单击事件中,通过将上述代码设置为true来启用它。并使您的键盘出现。
此外,如果您无法在EditText上获取焦点,则可以:
et.requestFocus(); // from activity
<EditText
android:id="@+id/et1"
android:editable="false"
android:layout_width="150dp"
android:layout_height="wrap_content" >
<requestFocus/>
</EditText>
//来自xml
希望这可以帮到您!
在清单文件中的活动中添加以下代码
android:windowSoftInputMode="adjustPan"