美文网首页Android软键盘Android知识Android开发
Android输入框控件EditText与软键盘之间的恩恩怨怨

Android输入框控件EditText与软键盘之间的恩恩怨怨

作者: IT枫 | 来源:发表于2016-03-25 11:17 被阅读3383次

    进入含有输入框控件的界面,系统默认弹出软键盘。

    根本原因属性focusableInTouchMode惹的祸。
    该属性的意思为触屏模式下获取焦点,手机基本上都是触屏的,当然也有非触屏的TV。
    默认情况下EditText值为true
    android:focusableInTouchMode="true"
    其他控件默认情况值为False
    android:focusableInTouchMode="fasle"
    导致进入界面时EditText获取到焦点,弹出软键盘。

    如何做到不弹出软键盘?

    • 1通过设置父控件属性值
      android:focusableInTouchMode="true"
    • 2位置在EditText之前的控件设置属性
      android:focusableInTouchMode="true"
    • 3设置EditText属性值
      android:focusableInTouchMode="fasle"

    需要注意<requestFocus />这个标签

    当EditText控件添加了该标签,导致前两种方式失效,进入界面依然弹出软键盘!!!

    <EditText ...>
    //请求焦点标签的设置
    <requestFocus android:layout_width="wrap_content"/>
    </EditText>

    屏蔽EditText输入功能,点击EditText不弹出软键盘,而触发其他操作。

    设置EditText属性
    android:focusable="false"
    使EditText不可获取焦点,达到触摸或点击无反应。

    软键盘遮挡EditText问题

    输入框在屏幕底部时,完全被软键盘遮挡,解决办法,在整体布局之外增加ScrollView

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    
    android:layout_width="match_parent"
    
    android:layout_height="wrap_content">
    
    </ScrollView>
    

    相关文章

      网友评论

      • 松小白:您好,我遇到的问题是,进入Activity 是没有获取到焦点,然后点击EditText 获取到了焦点也 弹出了软键盘,然后我点击隐藏软键盘,再次点击就再也获取不到焦点了?
        IT枫: @松小白 你是如何隐藏软键盘的呢

      本文标题:Android输入框控件EditText与软键盘之间的恩恩怨怨

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