您的位置:首页 > 移动开发 > Android开发

Android 如何让EditText不自动获取焦点

2015-12-09 17:26 253 查看
本人小白,接触安卓不到一年,好多东西都不懂得,这也无形中浪费了我的大量时间去查找一些文档资料.不过这也是学习过程,慢慢的积累,才能"亮剑":

废话不多说:今天下午做一个项目,edittext进入界面会自动获取焦点,以前也有过类似的场景,就搜了一下,发现好多网友在Android开发中都遇到过类似的问题,网上也有好多方法,但是,有方法不太灵敏,

于是,今天给大家分享一下,我开发使用的方法,有好的方法希望大家可以提出,我也会更新学习,

方法1:在edittext的父View控件中添加如下代码:

  android:focusable="true"  

 android:focusableInTouchMode="true"


原因:当父view控件获取焦点以后,截断子View(edittext)的获得焦点的行为.

例子如下:(此方法有时灵,有时就不听使唤,建议使用方法2)

<RelativeLayout
android:id="@+id/rl_username"
android:layout_width="match_parent"
android:background="#fff" >
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="18sp" />
</RelativeLayout>



方法2:在AndroidManifest.xml中配置(推荐使用)找到相应的activity添加

android:windowSoftInputMode="stateHidden"

原因:当我们的程序运行时,先查看配置清单(AndroidManifest)文件中的配置,根据配置,再执行相应的操作,此句配置的意思是直接隐藏小键盘,此方法是最直接最有效最常用的

例子如下:(我最常用的方法)

<activity
android:name=".activity.LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/horizontal_slide"
android:windowSoftInputMode="adjustResize|stateVisible|stateHidden" />


如果哪位大神有更好的方法还请指点一二
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息