zoukankan      html  css  js  c++  java
  • 日积月累:EditText软键盘的显示和隐藏

    在工作过程中,常常会遇见需要根据自己的需求,控制文本框的键盘显示和隐藏。 通过查阅Android文档,介绍可以通过在清单文件中<activity>元素中添加android:windowSoftInputMode属性来处理  

    这个属性主要影响两件事情 

    1.软键盘的状态—当Activity显示给用户的时候,它是显示还是隐藏 

    2.主活动窗口的调整—它是否调整主窗体大小来给软键盘腾出空间,或者在部分窗口被软键盘覆盖的时候,它的内容能否上拉让当前的焦点可见 

    该属性设置必须由如下表格中的一个,或者一个”state..."值和一个"adjust..."值的组合,或者在任意组中设置多个值。每个值使用|分隔 

     

    <activity android:windowSoftInputMode="stateVisible|adjustResize". . .> 

    1.设置软件盘的状态 

     

    描述 

    "stateUnspecfied" 

    不指定软键盘的状态,系统将选择一个合适的状态,或者依赖主题的设置。这是默认的软键盘行为设置 

    "stateUnchanged" 

    当Activity显示的时候,软键盘保持它前面Activity的任何状态,无论显示或者隐藏 

    "stateHidden" 

    当用户选着这个Activity,显示的时候软键盘隐藏 

    "stateAlwaysHidden" 

    当Activity的主窗体获取输入焦点的时候,软键盘总是隐藏。(经测试,在三星I959手机中无效) 

    "stateVisible" 

    当在适当的时候,软键盘显示 

    "StateAlwaysVisible" 

    当用户选择这个Activity,显示的时候软键盘总是可见(经测试,在三星I959手机中无效) 

     

    2.主活动窗口的调整 

    "adjustUnspectified" 

    没有明确指定是否Activity的主窗体调整来给软键盘腾出空间,或者窗体的内容上拉使得当前的焦点在屏幕中可见 

    "adjustResize" 

    Activity的主窗体总是为屏幕中的软键盘腾出空间 

    "adjustPan" 

    Activity的窗体的内容上拉,使得当前的焦点在屏幕中可见 

    3.adjustResize和adjustPan的实际效果 

    实验一:页面B指定属性adjustResize,观察页面B的键盘状态 

            显示键盘前 不显示软键盘

            显示键盘后:重置了窗体大小,并且保持当前的焦点输入框在屏幕中可见 

    实验二:页面B指定属性adjustPan,观察页面B的键盘状态 

            显示键盘前 不显示软键盘

            显示键盘后:界面没有重置大小,内容整体向上拉,当前焦点输入框在屏幕中不可见 

    4.stateUnchanged、StateHiddeng等的实际效果 

    实验一:页面B指定属性stateUnchanged,从页面A跳转至页面B,观察页面B的键盘状态 

            页面A的状态 显示软键盘

            跳转后,页面B的状态:页面B保持页面A的键盘显示状态 

    实验二:页面B指定属性stateHidden属性,从页面跳转页面B,观察页面B的键盘状态 

            页面A的状态 不显示软键盘

            跳转后,页面B的状态:页面B默认不显示键盘,在用户点击输入框获取焦点的时候,显示软键盘 

    实验三:页面B指定属性stateVisible属性,从页面跳转页面B,观察页面B的键盘状态 

            页面A的状态 不显示软键盘

            跳转后,页面B的状态:页面B默认显示软键盘,点击Back键隐藏


  • 相关阅读:
    [Codeforces967C]Stairs and Elevators(二分查找)
    [Codeforces976E]Well played!(贪心)
    [USACO12JAN]视频游戏的连击Video Game Combos(AC自动机+DP)
    [HDU2222]Keywords Search(AC自动机)
    [BZOJ1030][JSOI2007]文本生成器(AC自动机+DP)
    基于ZooKeeper实现——分布式锁与实现
    基于Redis实现——分布式锁与实现
    java 接口请求返回通用json
    Java SHAA加密
    (转)一些牛人榜样,多看看他们写的东西(后续整理牛人的blog等)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3238950.html
Copyright © 2011-2022 走看看