在activity中放置了1個或1個以上的EditText,進入該activity的時候第一個EditText會接收焦點,我希望裏面所有的EditText默認是不接收焦點的,該怎麼做呢?
方法1:
在第一個EditText前面添加一個LinearLayout,並且一定要請求獲得焦點,否則無效。網上很多都說到要添加一個LinearLayout,但是沒有強調要使用
<requestFocus />這句,發現不使用這句其實是沒有效果的。
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"> <requestFocus /> </LinearLayout>
然後,所有的EditText,裏面都不要再使用<requestFocus />。
方法2:
在EditText的父級控件中找一個,設置成
android:focusable="true" android:focusableInTouchMode="true"
這樣,就把EditText默認的行爲截斷了!
<LinearLayout
style="@style/FillWrapWidgetStyle"
android:orientation="vertical"
android:background="@color/black"
android:gravity="center_horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
>
<ImageView
android:id="@+id/logo"
style="@style/WrapContentWidgetStyle"
android:background="@drawable/dream_dictionary_logo"
/>
<RelativeLayout
style="@style/FillWrapWidgetStyle"
android:background="@drawable/searchbar_bg"
android:gravity="center_vertical"
>
<EditText
android:id="@+id/searchEditText"
style="@style/WrapContentWidgetStyle"
android:background="@null"
android:hint="Search"
android:layout_marginLeft="40dp"
android:singleLine="true"
/>
</RelativeLayout>
</LinearLayout>