【Android学习笔记】Edittext阻止软键盘自动弹出与取消焦点

本文介绍了如何在Android中防止Edittext控件在启动Activity时自动弹出软键盘,通过在AndroidManifest.xml中设置android:windowSoftInputMode属性为'adjustUnspecified|stateHidden'可以实现。此外,还提供了代码控制隐藏软键盘的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在xml布局中,我们有时候会用到Edittext这个控件,但是每次打开所在的Activity时,总是弹出键盘,不仅阻挡了视线,有时候不想输入,还总是麻烦地要把它缩下去。

        这个虽然问题不大,但是总觉得心里有点不舒服,其实解决这个加上两句简单代码就行了。

        打开AndroidManifest.xml,在对应的Activity注册那里,后面加上一句android:windowSoftInputMode="adjustUnspecified|stateHidden"就行了。

        例如,原来的Activity:

      <activity
            android:name="com.nuannuan.weather.activity.AddCitiesActivity"

            android:screenOrientation="portrait" />


       加上之后,

       <activity
            android:name="com.nuannuan.weather.activity.AddCitiesActivity"
            android:windowSoftInputMode="adjustUnspecified|stateHidden"
            android:screenOrientation="portrait" />


若想代码控制软键盘隐藏,可用

InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
					imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); 

我们编辑editText时,软件盘会自动弹出,如果此时EditText上面有一个listview列表,它会自动覆盖住listview,而有时我们需要listview的数据全部往上移动,软件盘弹出后把listview整个往上推,则只用在listview里加一行属性

        android:transcriptMode="normal"

有时候不想自动获取EditText的焦点,可以在其它控件获取焦点,在其他控件加上

 android:focusable="true"
 android:focusableInTouchMode="true"



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值