`
寻梦者
  • 浏览: 635608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

软件盘的开关

阅读更多

启动Activity时显示软件盘
 显示软件盘可以用如下的方式
 首先得到InputMethodManage
  InputMethodManager m = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
 然后调用InputMethodManager的以下方法
 boolean  showSoftInput(View view, int flags, ResultReceiver resultReceiver)
 boolean  showSoftInput(View view, int flags)
 void  showSoftInputFromInputMethod(IBinder token, int flags)
 public void toggleSoftInput (int showFlags, int hideFlags)
 public void toggleSoftInputFromWindow (IBinder windowToken, int showFlags, int hideFlags)
 但是上面InputMethodManager的方法在oncreate(),和onResume()中调用会没有作用。
 注意:可能是因为View还没有准备好,所以不起作用。网上找来的理由说是:软件盘是要在所有view画完才能显示。
 可以采用timer或Handler延迟在执行。
     Timer timer = new Timer();
     timer.schedule(new TimerTask()
     {
        @Override
        public void run() {
           InputMethodManager imm = (InputMethodManager)vv.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
           imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
           Toast.makeText(test.this, "show", Toast.LENGTH_SHORT).show();
        }
     }, 1000);

调用InputMethodManager的以下方法可以关闭软键盘
void  hideSoftInputFromInputMethod(IBinder token, int flags)
Close/hide the input method's soft input area, so the user no longer sees it or can interact with it.
boolean  hideSoftInputFromWindow(IBinder windowToken, int flags)
Synonym for {@link #hideSoftInputFromWindow(IBinder, int, ResultReceiver) without a result: request to hide the soft input window from the context of the window that is currently accepting input.
boolean  hideSoftInputFromWindow(IBinder windowToken, int flags, ResultReceiver resultReceiver)
Request to hide the soft input window from the context of the window that is currently accepting input.
注意:关闭键盘的时候不再可以像开启一样传递View,而必须是View的IBinder,可以通过View的getWindowToken()得到相应的IBinder。

Eidtext可以自己自动地弹出软键盘
 Eidtext这个控件默认是你点击了它获得焦点之后如果软键盘还没打开就会自动地弹出软键盘。
 前提是你在竖屏的时候。但横盘的时候,不会自动弹出弹出软键盘了。
 注意:这种情况下,Eidtext在这次事件中就不再进行光标定位的处理。

manifest中对软键盘弹出的属性进行设置
 可以在activity的android:windowSoftInputMode属性进行设置
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] > 
android:windowSoftInputMode
    How the main window of the activity interacts with the window containing the on-screen soft keyboard. The setting for this attribute affects two things:
        * The state of the soft keyboard — whether it is hidden or visible — when the activity becomes the focus of user attention.
        * The adjustment made to the activity's main window — whether it is resized smaller to make room for the soft keyboard or 
        whether its contents pan to make the current focus visible when part of the window is covered by the soft keyboard.
    The setting must be one of the values listed in the following table, or a combination of one "state..." value plus one "adjust..." value. 
    Setting multiple values in either group — multiple "state..." values, for example — has undefined results. Individual values are separated by a vertical bar (|). For example:
    <activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >
    Values set here (other than "stateUnspecified" and "adjustUnspecified") override values set in the theme.
    Value  Description
    "stateUnspecified"  The state of the soft keyboard (whether it is hidden or visible) is not specified. The system will choose an appropriate state or rely on the setting in the theme.
    This is the default setting for the behavior of the soft keyboard.
    "stateUnchanged"  The soft keyboard is kept in whatever state it was last in, whether visible or hidden, when the activity comes to the fore.
    "stateHidden"  The soft keyboard is hidden when the user chooses the activity — that is, when the user affirmatively navigates forward to the activity, rather than backs into it because of leaving another activity.
    "stateAlwaysHidden"  The soft keyboard is always hidden when the activity's main window has input focus.
    "stateVisible"  The soft keyboard is visible when that's normally appropriate (when the user is navigating forward to the activity's main window).
    "stateAlwaysVisible"  The soft keyboard is made visible when the user chooses the activity — that is, when the user affirmatively navigates forward to the activity, rather than backs into it because of leaving another activity.
    "adjustUnspecified"  It is unspecified whether the activity's main window resizes to make room for the soft keyboard, or whether the contents of the window pan to make the currentfocus visible on-screen. The system will automatically select one of these modes depending on whether the content of the window has any layout views that can scroll their contents. If there is such a view, the window will be resized, on the assumption that scrolling can make all of the window's contents visible within a smaller area.

    This is the default setting for the behavior of the main window.
    "adjustResize"  The activity's main window is always resized to make room for the soft keyboard on screen.
    这个可以让view自己调整大小以便显示软键盘。这样的话控件可能会变形
    "adjustPan"  The activity's main window is not resized to make room for the soft keyboard. 
    Rather, the contents of the window are automatically panned so that the current focus is never obscured by the keyboard and users can always see what they are typing. 
    This is generally less desirable than resizing, because the user may need to close the soft keyboard to get at and interact with obscured parts of the window.
    这种方式是通过调整view的空白区域来显示软键盘。即使调整空白区域,软键盘还是有可能遮挡一些有内容区域。这样的话用户就只有退出软键盘才能看到这些被遮挡区域并进行交互。
 官方相关文档地址:http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft
如何监听软键盘是否打开?
 到目前为止还没找到监听软键盘是否被开启的方法。
 网上建议用onConfigurationChanged (Configuration newConfig)的来对Configuration的keyboardHidden来监听的方法在三星的手机上也无效。
 public int keyboardHidden
  Since: API Level 1
  A flag indicating whether any keyboard is available. 
  Unlike hardKeyboardHidden, this also takes into account a soft keyboard, 
  so if the hard keyboard is hidden but there is soft keyboard available, it will be set to NO.
   Value is one of: KEYBOARDHIDDEN_NO, KEYBOARDHIDDEN_YES.

 :在三星的手机上可以同过监听广播来监听软键盘的开启和隐藏。
 

分享到:
评论

相关推荐

    软键盘遮住悬浮窗的EditText、软键盘消失无法监听返回键

    3. 自定义输入法事件监听:由于Android系统并未提供直接监听软键盘开关的API,可以通过监听Activity的root view高度变化来间接判断。当root view的高度减小,一般意味着软键盘弹出;反之,高度增大则可能是软键盘...

    Android应用源码之调用中的软键盘-IT计算机-毕业设计.zip

    4. **监听软键盘状态**:虽然Android SDK没有提供直接监听软键盘开关的方法,但可以通过监听视图的尺寸变化来间接判断。当软键盘弹出时,Activity的可见区域高度会减少,通过比较不同状态下的布局高度变化可以得知软...

    WPF自定义软键盘

    【WPF自定义软键盘】是一种专为WPF(Windows Presentation Foundation)应用程序设计的触摸屏虚拟输入设备。在没有物理键盘的环境下,如平板电脑或触摸显示器,这种虚拟键盘提供了输入文字的功能,尤其适用于触控...

    keyboard_qt隐藏_软键盘qt_qtkeyboard_QT_linux_

    软键盘的大小写切换功能通常是通过一个开关按钮实现的,例如大写锁定键(Caps Lock)。在QT中,可以通过监听按键事件,改变按键的显示状态(大写或小写),并相应地处理输入字符。 4. **自动隐藏功能**: 自动...

    用javascript实现软键盘

    3. **键盘显示与隐藏**:添加一个开关按钮,用户可以随时打开或关闭软键盘。 4. **处理特殊键**:除了字母和数字键,还需要处理退格键、空格键、回车键等特殊键的功能。 5. **适应性设计**:确保软键盘在不同屏幕...

    Android软键盘与聊天页面底部布局之间优雅地切换

    3. **自定义输入法栏**:如果想实现类似微信那样的聊天界面,可以创建一个浮动的输入法栏,它不会被软键盘遮挡,同时可以随着软键盘的开关进行适当的移动。这需要编写自定义布局并监听软键盘状态。 4. **监听软键盘...

    安卓recyclerview嵌套editText软键盘遮挡仿IOS处理.rar

    最近项目上遇到 dialog 里recyclerview 嵌套 ...基本上用到了动态改高度,属性动画,edit的 touchListener ,软键盘高度监听 及 开关监听,recycerview 的 item移动处理 等。在此记录下,希望也对你们有所帮助。

    Android应用软键盘打开或关闭的工具类

    在Android开发中,软键盘的管理是一个常见的需求,特别是在处理输入框交互时。"Android应用软键盘打开或关闭的工具类"就是为了解决这个问题而设计的。这个工具类提供了简单易用的方法,使得开发者可以方便地在需要的...

    Android-AirPanel帮助软键盘和面板开关

    "Android-AirPanel帮助软键盘和面板开关"是一个针对此类需求的解决方案,它允许开发者轻松地管理和切换软键盘以及自定义面板。下面我们将详细探讨这个主题,以及如何利用AirPanel-master项目来实现这一功能。 1. **...

    传名网络内部服务器管理系统 v1.0 简化版

    本程序是作者在前一家公司干活...带系统登陆软键盘开关 4。系统SESSION自动设置 5。登陆管理密码修改 6。机房后台填加修改 7。付宽方式后台填加修改 8。等等方式后台填加修改 9。域名后缀填加修改 10。空间型号填加修改

    wince下软键盘的调用方法

    除了软键盘的显示与隐藏,控制InputPanel的开关也是实现良好用户体验的重要环节。InputPanel是在某些情况下自动弹出的输入面板,通常与软键盘一起使用,以便于用户进行文本输入。虽然在给定的代码片段中没有直接涉及...

    英库必应输入法 2014-6-25

    支持软键盘开关的快捷键(ctrl+shift+k) 修复设置IE代理后,V模式应用网络请求失败问题 英文小助手仅在空格选词时自动添加空格,数字选词不添加 修复无法在招行专业版中输入汉字的问题 修复若干程序崩溃问题

    Office-2003与Word-2003整套ppt课件完整版教学教程最全电子讲义(最新).ppt

    软键盘开关按钮则允许用户通过模拟键盘输入汉字和特殊符号。 在学习Word 2003的过程中,掌握这些基本操作是基础,随着对软件的深入理解,用户可以探索更高级的功能,如模板使用、邮件合并、宏录制等,进一步提升...

    CDRomSwitch(光驱软开关).

    标题中的“CDRomSwitch”指的是一个软件工具,其主要功能是提供光驱的软开关功能。在计算机领域,光驱通常用于读取和写入CD、DVD等光学媒体。传统上,用户需要手动打开或关闭电脑上的物理光驱门,但通过CDRomSwitch...

    Office-2003与Word-2003整套ppt课件完整版教学教程最全电子讲义.ppt

    输入法提示条提供了诸多功能,包括中英文切换、全角/半角切换、中英文标点切换,以及软键盘开关,方便用户根据需要输入不同格式的字符和符号。 掌握这些基础知识后,用户就可以开始探索Word 2003的高级特性,如段落...

    Android快速开发工具类收集,软键盘sp日志反射屏幕wifi控件点击

    - 关键API:`InputMethodManager`,使用`hideSoftInputFromWindow()`方法隐藏软键盘,`showSoftInput()`方法显示软键盘。 2. **SP日志**: - Shared Preferences(SP)是Android中用于存储轻量级数据的机制,常...

    光驱软开关 鼠标开关光驱 减少光驱按钮的损耗

    在描述中提到的“鼠标开关光驱”,意味着该小程序可能集成到鼠标右键菜单或通过快捷键操作,用户只需在鼠标点击或键盘操作下,就能实现光驱的开启和关闭,无需物理接触光驱的开关。这种设计不仅方便了用户,还延长了...

    光驱软开关

    光驱软开关是一种实用的计算机技术,它允许用户通过键盘快捷键或软件界面来控制光驱的开启和关闭,而无需物理触动光驱面板上的实体开关。这种功能在某些情况下非常方便,例如当电脑处于无尘环境或者光驱开关损坏时,...

    STM32_USB_鼠标_键盘_STM3210B-LK1 验证ok

    "-/--"鼠标功能开关,当前只有上下左右改为鼠标键,其他按键即使在鼠标模式下也是键盘功能 鼠标左键 : 菜单 & OK 鼠标右键 : 应用 2.键盘功能,按键当前可用于验证 3.遥控头码 0x00 0xFF IRKEY_UP = 0x47, ...

Global site tag (gtag.js) - Google Analytics