如何在Android版本7.0(牛轧糖)及以上

时间:2017-09-12 13:28:37

标签: android keyboard android-7.0-nougat

我创建了自定义编辑文本,我在其中将InputType设置为this.setInputType(InputType.TYPE_CLASS_NUMBER);,但问题是它在7.0(牛轧糖)以下完美运行但是在7.0以上它显示了字母数字键盘。

另外一个奇怪的事情发生在我触摸EditText时,我很快得到了软数字键盘,但在不到一秒的时间内,它会自动变为显示所有字母的常规软键盘。当键盘打开时,比按下后退按钮,比键盘关闭,但当我重新输入Edittext时。键盘打开,直到我点击onther edittext然后点击当前的edittext

这是Nougat的问题,还是我做错了

有关我使用代码将setSoftInputMode设置为ADJUST PAN

的信息
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN
                    |WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

并设置数字键盘使用this.setInputType(InputType.TYPE_CLASS_NUMBER);

已修改              当我删除 -

setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN
                        |WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

从活动开始每件事情都工作正常(数字键盘在数字编辑文本中打开,字母数字键盘在字母数字编辑文本中打开)除了内容没有向上方向意味着键盘隐藏编辑文本(因为忽略了这个属性SOFT_INPUT_ADJUST_PAN)

帮助表示感谢

2 个答案:

答案 0 :(得分:3)

我尝试在7+设备上使用setInputType(InputType.TYPE_CLASS_NUMBER),但没有看到您描述的行为。寻找另一个线程,runnable或任何在打开或同时更改EditText的InputType的回调。

答案 1 :(得分:1)

尝试在softInputMode文件中设置Manifest,它可能会为您提供所需的行为。

<activity
    android:name=".YourActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />