有一种更好的方式以编程方式隐藏键盘。
进入xml并添加以下属性
android:focusable="false"
例如
<EditText
android:id="@+id/time_date_et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/prompt_light"
android:focusable="false"
android:textSize="17sp" />
以上属性保证键盘不会出现!
您可以在 xml 中使用属性
android:focusableInTouchMode="false"
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:inputType="text|date"/>
并在代码中向该视图添加点击监听器
editText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//show date picker
}
});
val activity: Activity = this //if you are in the Activity
val imm = activity.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
var view = activity.currentFocus
if (view == null) {
view = View(activity)
}
imm.hideSoftInputFromWindow(view.windowToken, 0)
这段代码应该隐藏你的虚拟键盘。只需将其放入方法中并调用即可。 :)
我想请求有关仍在工作的项目的帮助,我有大约 8 个月的时间来尝试解决我的项目中的问题。
当我在文本框获取中输入详细信息时,我被困在登录表单中
com.busticetreservation:76f42aea:ORIGIN_CLIENT_SHOW_SOFT_INPUT原因SHOW_SOFT_INPUT的onRequestShow
showSoftInput() view=com.google.android.material.textfield.TextInputEditText{9d94570 VFED..CL。 .F.P..ID 0,0-945,147 #7f0a011e 应用程序:id/logPasswordID 援助=1073741825} 标志=0 原因=SHOW_SOFT_INPUT
显示(ime(),fromIme = true)
com.busticetreservation:5c864f7b:在 PHASE_CLIENT_APPLY_ANIMATION 取消
这些是我运行应用程序时出现的错误。请帮忙...