在项目中遇到需要用EditText控件的地方太多了,然后EditText的焦点问题也是在很大程度上都会遇到的问题。下面记录一下我遇到的几个问题:
一、需要屏蔽掉EditText默认获取焦点并弹出软键盘的问题:
网上会有很多类似的问题,也有很多的解决办法,但是亲测有效的办法目前只有一个:
在布局中添加如下代码:<LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:focusable="true" android:focusableInTouchMode="true" android:orientation="horizontal"> <requestFocus /> </LinearLayout>
这是我找到的比较好用的方法
二、需要给指定的EditText焦点:
我们在比如像登录注册等等界面中,可能会有多个EditText竖排分不,有的时候我们需要手动的为某个EditText获取焦点。同样的,比较有效的办法如下:
editText.setFocusable(true); editText.requestFocus(); editText.setFocusableInTouchMode(true);
三、指定EditText的行数:
- 在登录注册页面中需要设置单行:单行在原来的设置方式为添加属性
android:singleLine = "true"
//或者是在代码中动态设置
edItText.setSingleLine(true);
但是在现在的版本中,已经将这个属性丢弃了。改用maxLines来替代了,但是EditText 设置了之后你发现没有生效。
原来在使用maxLines属性时,需要指定inputType,如果没有具体的类型,则指定为”text”即可