禁止EditView自动弹出系统软键盘_Android基础篇(Java)

文 | Promise Sun


1.场景描述:

1) APP项目中经常会开发自定义软键盘;同时在使用EditView时,也会常常遇到自动弹出系统自带的软键盘,与自定义的软键盘产生冲突的情况;此时需要禁止EditView自动弹出系统软键盘,从而使自定义的软键盘正常显示。

2) 正常的禁用系统软键盘方法无法满足需求,eg:在复制粘贴文本前,选中EditView中的文本时,Android系统会自动调起软键盘,与自定义的软键盘产生冲突;此时需要特殊处理一下。
希望达到的效果是无论如何点击EditView,系统软键盘绝对不会弹出来——实现彻底禁止EditView自动弹出系统软键盘。

2. 功能实现

1)首先,在清单文件AndroidManifest.xml中,给EditView所在的Activity页面设置属性

 android:windowSoftInputMode="stateHidden"

eg:(示例仅供参考)

 <activity
            android:name=".promise.sun.DemoActivity"
            android:windowSoftInputMode="stateHidden"/>

2)然后,找到EditView所在的xml布局文件,找到EditView的父布局(容器),设置属性

android:focusable="false"
android:focusableInTouchMode="false"

eg:(示例仅供参考)

         <RelativeLayout 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:focusable="false"
                android:focusableInTouchMode="false">

                <EditText
                    android:id="@+id/et_search"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_35"
                    android:layout_gravity="center"
                    android:background="@drawable/bg_white"
                    android:drawableLeft="@drawable/icon_search"
                    android:drawableRight="@drawable/icon_clear"
                    android:hint="请输入"
                    android:maxLength="12"
                    android:maxLines="1"
                    android:paddingLeft="@dimen/dp_30"
                    android:paddingRight="@dimen/dp_10"
                    android:singleLine="true"
                    android:textColor="@color/app_black"
                    android:textColorHint="@color/grey_nine"
                    android:textColorHighlight="@color/blue_two"
                    android:textCursorDrawable="@drawable/cursor"
                    android:textSize="@dimen/sp_14" />
          </RelativeLayout>

3)最后,找到EditView所在的Activity,在初始化时设置方法

editView.setShowSoftInputOnFocus(false);

4)完美解决,亲测有效。


版权声明:本文为博主原创文章,转载请点赞此文并注明出处,谢谢!

推荐阅读更多精彩内容