scrollView.requestFocus()返回true,但不起作用

时间:2014-11-17 07:55:42

标签: android android-layout

全部,我有一个包含editText的滚动。

点击editText后,它会获得焦点并显示SoftInput。

在我看来,如果我点击空白区域,则软输入隐藏和editText将失去焦点,并且scrollview会获得焦点。

所以我的代码是这样的:

scrollView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //call twice, once down, once up
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                if (activity.getCurrentFocus() != null && activity.getCurrentFocus().getWindowToken() != null) {
                    inputManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                    scrollView.requestFocus();
                    activity.getCurrentFocus();
                }
            }
            return false;
        }
    });



ScrollView
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:id="@+id/scrollView"
        android:layout_below="@+id/topBar"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

但毕竟editText仍然关注(activity.getCurrentFocus()== editText),有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用LinearLayout而不是ScrollView。或者使用下面的LinearLayout包装EditText。

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/scrollView"
    android:layout_gravity="center_horizontal" >

    <LinearLayout
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearLayout"
        android:layout_gravity="center_horizontal" >

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:ems="10"
            android:id="@+id/editText" />
    </LinearLayout>
</ScrollView>