edittext的imeOptions属性和android软键盘的使用
2015-01-08 15:02
363 查看
1、edittext的一些属性。用到一个edittext的时候,弹出来的软键盘是全屏的,除了软键盘,输入的容器占据了屏幕剩余的地方。很明显不是我们想要的。
其实只要设置 android:imeOptions:"flagNoExtractUi|flagNoFullscreen"就可以了 。
另外还有 弹出来的软键盘的右下键,也就是enter键怎么自定义设置呢?
首先 android:imeOptions可以有以下几种:(下面这段xml属性和常量值抄来的)
(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:
(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:
(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:
(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:
(5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:
(6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:
(7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:
举个例子:加入我们要使用enter键点击了去搜索
也就是说一个edittext的imeOptions属性可以为:
那么 怎么 在代码中根据常量来使用我们自己的逻辑呢?
et =(EditText)findViewById(R.id.editText);
2、上面是关闭软键盘,打开软键盘,android内部已经封装了:在edittext获取焦点之后,点击enter则弹出软键盘
弹出软键盘的代码:
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
3、有时候软键盘弹出来会影响布局:比如顶上去了。。
怎么办?
我们可以在AndroidManifest.xml的Activity标签中设置android:windowSoftInputMode为adjustPan(没有滚动条的android页面),或者adjustResize(有滚动条的android页面)
4、注意这里的edittext属性paddingleft有点技巧,一般输入框前面空几个空格就是它实现的。另外如果需要实现输入框前面有几个字不能被修改可以利用这个属性
还有textview来实现,很不错。
其实只要设置 android:imeOptions:"flagNoExtractUi|flagNoFullscreen"就可以了 。
另外还有 弹出来的软键盘的右下键,也就是enter键怎么自定义设置呢?
首先 android:imeOptions可以有以下几种:(下面这段xml属性和常量值抄来的)
(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:
(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:
(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:
(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:
(5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:
(6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:
(7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:
举个例子:加入我们要使用enter键点击了去搜索
也就是说一个edittext的imeOptions属性可以为:
<EditText 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"> <requestFocus /> </EditText>
那么 怎么 在代码中根据常量来使用我们自己的逻辑呢?
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、有时候软键盘弹出来会影响布局:比如顶上去了。。
怎么办?
我们可以在AndroidManifest.xml的Activity标签中设置android:windowSoftInputMode为adjustPan(没有滚动条的android页面),或者adjustResize(有滚动条的android页面)
4、注意这里的edittext属性paddingleft有点技巧,一般输入框前面空几个空格就是它实现的。另外如果需要实现输入框前面有几个字不能被修改可以利用这个属性
还有textview来实现,很不错。
相关文章推荐
- Android如何将软键盘回车换成搜索等按钮,EditText中imeOptions属性的使用
- 【Android常用控件】EditText常用属性【二】:为文本输入框指定软键盘类型和软键盘回车键图标设置
- Android EditText的属性和方法介绍使用及值得注意的点
- android输入法属性使用,软键盘隐藏、显示状态控制大揭秘
- Android EditText的属性和方法介绍使用及值得注意的点
- 不使用android:windowSoftInputMode属性,实现软键盘遮盖最下面布局的效果
- 整理 Android EditText 的相关属性的使用
- Android开发EditText弹出软键盘的相关使用
- EditText的imeOptions属性的使用
- android 软键盘 EditText 使用总结
- Android 关于EditText的imeOptions属性以及设置"回车"按钮的事件监听器
- 【Android常用控件】EditText常用属性【二】:为文本输入框指定软键盘类型和软键盘回车键图标设置
- android:windowSoftInputMode 软键盘属性使用
- Android 在Java代码中设置style属性--使用代码创建ProgressBar对象
- android自定义属性的使用
- Android declare-styleable:自定义控件的属性(attr.xml,TypedArray)的使用
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- Android EditText 的属性说明
- android EditText 属性
- 使用android:layout_weight属性来给view group中各个控件设置所占空间大小比重