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

Android取消EditText自动获取焦点默认行为

2016-04-05 15:59 453 查看
在项目中,有时候想要编辑框开始不获取焦点,当点击编辑框获得焦点时,会调到下一个Activity中。

一般情况下,一进入一个页面, EditText默认就会自动获取焦点。

解决之道:在EditText的父级控件中找一个,添加这两个属性:

android:focusable="true"
android:focusableInTouchMode="true"
这样,就把EditText默认的行为截断了!

例如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true"
><!-- 这两句是为了取消自动获取焦点 -->

<com.baidu.mapapi.map.MapView
android:id="@+id/id_bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />

<EditText
android:id="@+id/search_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/search_bar_edit_bg"
android:drawableLeft="@drawable/search_bar_icon_normal"

android:hint="搜索"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColor="#000" >

</EditText>
<Button
android:id="@+id/button_selector"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="25dp"
android:layout_marginTop="100dip"
android:background="@drawable/mmm" />

<Button
android:id="@+id/traffic"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignLeft="@+id/button_selector"
android:layout_below="@+id/button_selector"
android:layout_marginTop="15dp"
android:background="@drawable/traffic" />

</RelativeLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: