EditText没有失去焦点在后退按钮与滚动查看
我在我的活动中覆盖了onPackPressed(),如下所示:
*活动以软键盘开始,但当后退按钮被按下,从而关闭软键盘时,edittext不会失去焦点,所以知道这一点后,我决定强制edittext在键盘关闭时手动失去焦点通过按下后退按钮
@Override
public void onBackPressed() {
super.onBackPressed();
getCurrentFocus().clearFocus();
}
问题在于edittext仍然不失焦点; 即使我的布局中的根视图具有属性focusable="true"
和focusableInTouchMode="true"
,这似乎是确保edittext不会意外重新对焦的工作。
任何想法为什么我的edittext不失焦点?
*只要其他edittext获得焦点,它确实会失去焦点
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.android.views.CounterEditText
android:id="@+id/item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
custom:maxCharacters="@integer/maxCharactersInTitle">
</com.example.android.views.CounterEditText>
<LinearLayout
android:id="@+id/attributes_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/item_title"
android:orientation="vertical">
<com.example.android.views.CounterEditText
android:id="@+id/attribute_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
custom:maxCharacters="@integer/maxCharactersInAttribute">
</com.example.android.views.CounterEditText>
<com.example.android.views.CounterEditText
android:id="@+id/attribute_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
custom:maxCharacters="@integer/maxCharactersInAttribute">
<com.example.android.views.CounterEditText>
</LinearLayout>
<ImageButton
android:id="@+id/add_attribute_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/attribute_container"
android:background="@null"
android:src="@android:drawable/ic_menu_add"/>
<EditText
android:id="@+id/item_description"
android:layout_width="match_parent"
android:layout_height="125dp"
android:layout_alignParentBottom="true"
android:background="@color/genericGrayBgColor"
android:gravity="center_horizontal"
android:hint="@string/item_description_hint"/>
</RelativeLayout>
</ScrollView>
<Button
android:id="@+id/create_item_button"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/white"
android:text="@string/create_item_button_text"
android:textColor="@android:color/darker_gray"/>
</LinearLayout>
更新:
问题不在于getCurrentFocus().clearFocus()
不起作用。 问题是,当软键盘启动并且后退按钮被按下时,不会调用onBackPressed()
。
上一篇: EditText not Losing focus on Back Button Press with Scrollview