在網上找了好久,有點 監聽軟鍵盤事件,有點 調用 clearFouse()方法,但是測試了都沒有! xml中也找不到相應的屬性可以關閉這個預設行為
解決之道:在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> |
查閱了很多資料後,發現以下方法最簡單:
在xml中,在EditText控制項之前
加入
代碼如下 |
複製代碼 |
<LinearLayout android:id="@+id/linearLayout_focus" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/> |
這是一個虛假的LinearLayout,不會顯示的,但是會搶走焦點