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属性可以为:

<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来实现,很不错。

更多相关文章

  1. android 弹出的软键盘遮挡住EditText文本框的解决方案
  2. android imeOptions
  3. android EditText中的inputType
  4. [Hi3751V811][Android8.0]系统按键的转换 - android键值的映射
  5. android设置软键盘搜索键以及监听搜索键点击事件
  6. android:windowSoftInputMode 介绍
  7. Android窗口系统第三篇---WindowManagerService中窗口的组织方式
  8. android webview 软键盘覆盖 输入框的 问题
  9. 【起航计划 006】2015 起航计划 Android(安卓)APIDemo的魔鬼步伐

随机推荐

  1. 怎么在html,Javascript,vBscript中实现从
  2. Java多线程之Thread、Runnable、Callable
  3. BufferedImage到InputStream - 格式不同
  4. 20145122《 Java网络编程》实验五实验报
  5. java操作ftp实现文件的上传下载(适用于图
  6. ***100分,谁有用java mail做的把表单直接
  7. 急求用jersey2.x+spring3.x 开发rest web
  8. 从AWS Lambda发布到SNS时超时
  9. Finder3.0 - 集群支持即将发布
  10. Java中的TreeMap、Comparable、Comparato