我想知道如何防止控件EditText
在每次收到焦点或用户将鼠标悬停在控件上时显示键盘。
这样做的原因是我想使用所述控件在每次收到焦点或用户将鼠标悬停在控件上时显示一个日历对话框,以便控件将获取日期的值(我已经实现了最后一部分)。
原则上,根据Android 文档android:inputType="none"
,设置字段的 type属性EditText
会使文本不可编辑,因此预期的行为是不显示android键盘。但是,每次控件获得焦点或用户单击控件时,键盘仍会出现。
这是定义控件的xml代码:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Controles -->
<android.support.design.widget.TextInputLayout
android:id="@+id/tiFechaCaducidad"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/etFechaCaducidad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/fechacaducidad"
android:singleLine="true"
android:inputType="none"
android:drawableRight="@drawable/ic_arrow_drop_down" />
</android.support.design.widget.TextInputLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
你可以试试这个,希望对你有帮助。我打算把它作为评论,但它太长了:
这是TextView的一个方法:
这将是一种使用事件的方法
onTouch()
:将以下内容放在编辑文本的属性中:
您的问题的答案是将类型分配给
null
您的输入EditText
输入参数
null
时,接收文本并自动发送android键盘的参数将被停用,仅受您通过屏幕上的代码处理的文本输入的影响。