美文网首页
EditText软件盘显示和占用位置属性解析

EditText软件盘显示和占用位置属性解析

作者: 微罗妮卡 | 来源:发表于2017-03-06 10:55 被阅读0次

    在讲解EditText之前,先介绍一下如何查看android属性文档:

    1.在SDK api中搜索android
    2.在搜索结果的R.attr中

    Paste_Image.png
    <EditText   
      android:id="@+id/edit_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" />
    

    以上默认情况下,EditText有焦点,软件盘不弹出.但是如果EditText被ScrollView包裹,软件盘会弹出

    focusable : Boolean that controls whether a view can take focus.
    一个控件是否可以聚焦 ,这个主要应用在非触摸屏的android应用中

    focusableInTouchMode : Boolean that controls whether a view can take focus while in touch mode.
    当在触摸模式下,判断一个控件是否可以聚焦.
    主要用在EditText中,因为软件盘会为拥有焦点的EditText输入.如果此值设置为false,键盘是不会弹出的.

    windowSoftInputMode :定义了默认的软件盘输入状态
    Defines the default soft input state that this window would like when it is displayed. Corresponds to softInputMode.Must be one or more (separated by '|') of the following constant values.

    Paste_Image.png
    • stateUnspecified: 不特别指定,用系统默认最好的,默认值.

    • stateUnchanged: 离开软件盘输入,不管最后是什么状态.

    • stateHidden: 使软件盘再合适的时候隐藏(当用户跳向别的页面) 默认应该就是这个值

    • stateAlwaysHidden: 软件盘一直隐藏,暂时看起来与stateHidden没发现什么区别,使用这两个属性,再ScrollView存在的情况下,软件盘不会默认弹出

    • stateVisible:使软件盘在合适的时候显示(使用这个属性,会显示软件盘,但是进入其他页面再返回默认就不显示了,只有点击后才会调起软件盘)

    • stateAlwaysVisable: 当窗口有输入焦点的时候,软件盘一直显示(进入其它页面,在返回焦点存在,软件盘还会存在)

    • adjustUnspecified:窗口的大小/盘调整没有被指定,系统将自动选择调整大小和 PAN模式,取决于窗口的内容是否有任何布局视图,可以滚动其内容。如果有这样的一个视图,然后将窗口调整大小,与假定的可调整大小的面积为软件盘空出地方

    • adjustResize:总是调整窗口大小:减少窗口区域去显示软件盘:实际效果是键盘覆盖内容,如果有ScrollView,就会将其包裹的内容向上移动,看到键入内容.

    • adjustPan:不会调整窗口大小,会已焦点位置移动(再EditTextView以上的整体向上移动),方便用户看到他们的键入内容.有没有scrollVIew效果都是一样的,是整体上移

    • adjustNothing:不会调整窗口大小和pan去为软件盘留位置,窗口不会调整他. 没有ScrollView和adjustResize一样效果,有的话也不会调整

    默认会焦点位置移动,类似adjustPan效果
    如果想要默认不显示软件盘,并且点击后输入内容显示,可以按以下设置:

    <activity   
    android:name=".MainrActivity"   
    android:label="@string/title_activity_main"   
    android:screenOrientation="portrait"  
    android:windowSoftInputMode="stateHidden|adjustResize"></activity>
    

    下面为一个讲解触摸模式的文章:
    http://www.th7.cn/Program/Android/201407/234672.shtml

    相关文章

      网友评论

          本文标题:EditText软件盘显示和占用位置属性解析

          本文链接:https://www.haomeiwen.com/subject/mciygttx.html