博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android输入控件EditText和软键盘监听
阅读量:4966 次
发布时间:2019-06-12

本文共 1602 字,大约阅读时间需要 5 分钟。

1. 跳转到新的页面自动软键盘显示情况:

在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置。

  1. stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
  2. stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
  3. stateHidden:用户选择activity时,软键盘总是被隐藏
  4. stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
  5. stateVisible:软键盘通常是可见的
  6. stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
  7. adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
  8. adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
  9. adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

一般情况下,软键盘的弹出都需要依托EditText获取焦点。根据输入控件可以控制软键盘的弹出和收缩。

public static void showSoftInput(final View view) {    view.postDelayed(() -> {        view.setFocusable(true);        view.setFocusableInTouchMode(true);        view.requestFocus();        InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);        if(imm != null) imm.showSoftInput(view, 0);    }, 200);}public static boolean hideSoftInput(View view) {    InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);    return imm != null && imm.hideSoftInputFromWindow(view.getWindowToken(), 0);}

 

2. 键盘上的搜索,回车,确定,GO之类的设置。在EditText类型设置imeOptions属性:

或在代码中设置:

editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

3. 判断是否点击了软键盘的回车,搜索之类的按钮,可以添加为输入控件添加TextView.OnEditorActionListener监听,判断点击IME_ACTION类型,返回false则是默认系统处理,返回true则自行处理。

editText.setOnEditorActionListener((v, actionId, event) -> {    if (actionId == EditorInfo.IME_ACTION_DONE){        //TODO        return true;    }    return false;});

 

转载于:https://www.cnblogs.com/denluoyia/p/9089024.html

你可能感兴趣的文章
linux 命令之top
查看>>
有关远程设置的问题
查看>>
BZOJ 1800: [Ahoi2009]fly 飞行棋
查看>>
2019,2月份第三个星期,js小突破了一波,笔记
查看>>
洛谷 [P3033] 牛的障碍
查看>>
枚举类
查看>>
js-20170804-Math对象
查看>>
算法笔记_226:填符号凑算式(Java)
查看>>
KONG 安装 (在 CentOS 7 中)
查看>>
jquery 对HTML标签的克隆、删除
查看>>
【Pandas】Pandas求某列字符串的长度,总结经验教训
查看>>
【转载】 Python动态生成变量
查看>>
WPF入门教程系列九——布局之DockPanel与ViewBox(四)
查看>>
用C写的俄罗斯方块游戏 By: hoodlum1980 编程论坛
查看>>
实现WMSservice的时候,出现边缘的点或icon被切断的情况
查看>>
使用ALAssetsLibrary读取所有照片
查看>>
杭州蓝松科技---短视频SDK介绍
查看>>
javascript你应该知道的七件事
查看>>
垃圾短信识别
查看>>
SOAP 1.1与SOAP 1.2的区别
查看>>