EditText Keyboard 未解之谜

项目中需要一个提现功能,EditText 输入一些必要的信息

173411_o0wE_2438532.png

太简单了对吧,EditText 获取焦点时,弹出键盘,输入框至于键盘之上。首先manifest文件注册activity 设置

windowsSoftInputMode="adjustPan|stateHidden",

adjustPan该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。
stateHidden当用户选择该 Activity时,软键盘被隐藏——也就是,当用户确定导航到该 Activity时,而不是返回到它由于离开另一个 Activity

页面代码如下

                <LinearLayout
                    ...>
                    <TextView
                        ...
                        android:text="持卡人"/>
                    <EditText
                       ...
                        android:gravity="center_vertical|right"
                        android:hint="持卡人姓名"/>
                </LinearLayout>
                <LinearLayout
                    ...>
                    <TextView
                        ...
                        android:text="银行卡号"/>
                    <EditText
                        ...
                        android:gravity="center_vertical|right"
                        android:hint="银行卡号"
                        android:inputType="number"/>
                </LinearLayout>
                <LinearLayout
                    ...>
                    <TextView
                        ...
                        android:text="银行类型"/>
                    <EditText
                        ...
                        android:gravity="center_vertical|right"
                        android:hint="如工商银行">
                </LinearLayout>
                <LinearLayout
                    ...>
                    <TextView
                        ...
                        android:text="开户支行"/>
                    <EditText
                        ...
                        android:gravity="center_vertical|right"
                        android:hint="银行卡开户行支行信息"/>
                </LinearLayout>

四个EditText,文件要显示在右边所以gravity="center_vertical|right",其中银行卡只是输入数字,故inputType="number"。实际效果如下。

当输入银行卡号,键盘弹起时,键盘并不是每一次都会把EditText顶起来。只有从另外一个EditText焦点切换回来时弹出键盘才能顶起,如果此时焦点处于此EditText之上,想修改信息时,无奈键盘挡住内容只能盲写,太瞎了。而另外三个EditText为何不会出现这样的情况呢?他们之间的差异仅仅时inputType 不同。而我注释掉inputType="number",果然神奇的每次都顶起来了。那么仅仅时inputType造成的吗?,此时我把gravity="center_vertical|right"注释掉,inputType="number"保持不变

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edit_text"
        android:hint="NUMBER"
        android:inputType="number"/>

键盘同样每次都可以顶起EditText。此时我的结论如下:(当EditText grivaty="right" input="number" 时,无法保证每次键盘弹起时,EditText都置于键盘之上。ps其它情况请自行测试)。可是实际的情况并不是这样,

转载于:https://my.oschina.net/u/2438532/blog/753446

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值