本人小白,接触安卓不到一年,好多东西都不懂得,这也无形中浪费了我的大量时间去查找一些文档资料.不过这也是学习过程,慢慢的积累,才能"亮剑":
废话不多说:今天下午做一个项目,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" />
如果哪位大神有更好的方法还请指点一二