android editorinfo,edittext的imeOptions属性和android软键盘的使用 - muxi

1、edittext的一些属性。用到一个edittext的时候,弹出来的软键盘是全屏的,除了软键盘,输入的容器占据了屏幕剩余的地方。很明显不是我们想要的。 其实只要设置 android:imeOptions:flagNoExtractUi|flagNoFullscreen就可以了 。 另外还有 弹出来的软键盘的

1、edittext的一些属性。用到一个edittext的时候,弹出来的软键盘是全屏的,除了软键盘,输入的容器占据了屏幕剩余的地方。很明显不是我们想要的。

其实只要设置 android:imeOptions:"flagNoExtractUi|flagNoFullscreen"就可以了 。

另外还有 弹出来的软键盘的右下键,也就是enter键怎么自定义设置呢?

首先 android:imeOptions可以有以下几种:(下面这段xml属性和常量值抄来的)

(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355737%2Fbd9d7b7c-2a93-37b3-afd9-cda2f3593058.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355737%2Fbd9d7b7c-2a93-37b3-afd9-cda2f3593058.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355757%2Fa8db4447-ec91-39aa-a546-c117db16cf55.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355769%2Fc35d6b78-d5b9-314a-9698-144bc12d0af3.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355788%2Fc168252f-bb3d-3831-8e3c-8bced16b12a1.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355798%2Faa6bd8b1-8ab3-38d9-b162-01ce10f4f998.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

(7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:

test.jsp?url=http%3A%2F%2Fdl.iteye.com%2Fupload%2Fattachment%2F355804%2F79979746-7373-3377-bb7e-3dd4bdede464.png&refer=http%3A%2F%2Fblog.csdn.net%2Fmuxidreamtohit%2Farticle%2Fdetails%2F42524843

举个例子:加入我们要使用enter键点击了去搜索

也就是说一个edittext的imeOptions属性可以为:

android:id="@+id/editText"

android:layout_width="470dp"

android:layout_height="38dp"

android:paddingLeft="8dp"

android:background="@drawable/edittext_shape"

android:ems="10"

android:singleLine="true"

android:imeOptions="actionSearch|flagNoExtractUi|flagNoFullscreen">

那么 怎么 在代码中根据常量来使用我们自己的逻辑呢?

et =(EditText)findViewById(R.id.editText);

et.setOnEditorActionListener(new EditText.OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

Log.i(TAG, "onEditorAction ----------- actionId:" + actionId);

if (actionId == EditorInfo.IME_ACTION_SEARCH) {

InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

onClickListener.onClick(goBtn);

}

return false;

}

});

2、上面是关闭软键盘,打开软键盘,android内部已经封装了:在edittext获取焦点之后,点击enter则弹出软键盘

弹出软键盘的代码:

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);

3、有时候软键盘弹出来会影响布局:比如顶上去了。。

怎么办?

4、注意这里的edittext属性paddingleft有点技巧,一般输入框前面空几个空格就是它实现的。另外如果需要实现输入框前面有几个字不能被修改可以利用这个属性

还有textview来实现,很不错。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值