0

我的应用程序底部有一个编辑文本。我想在收到触摸事件时始终实现这一点,软键盘出现将整个窗口滚动到顶部,以便我的 EditText 保持可见。

问题是有时窗口根本不滚动,编辑文本仍然隐藏在软键盘后面。奇怪的是,在那些时刻,如果我按下任何东西或与窗口中的其他元素交互,显然它会刷新或类似的东西,然后它会正确滚动到顶部,让我看到编辑文本。

我尝试了不同的东西,这是我的最终代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:background="@android:color/black">

<my.Custom_Edit_Text
    android:id="@+id/my_custom_edit_text"
    style="@style/my_custom_edit_text_Style"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:maxLength="@integer/data_title_max_length"
    android:text="@string/my_custom_edit_text_default" 
    android:selectAllOnFocus="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:cursorVisible="true"
    android:inputType="text"/>

这是我的 Custom_Edit_Text 代码,我在其中处理 onTouch 事件:

setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
                requestFocus();
            }
            return false;
        }
    });

我还在 Manifest 文件中设置了这个属性:

android:windowSoftInputMode="stateHidden|adjustPan" 
4

2 回答 2

1

用这个

android:configChanges="keyboardHidden|orientation"

android:windowSoftInputMode="adjustPan"

让我知道使用这两种方法是否对您有帮助,并且在您的虚拟键盘造成问题的布局中使用滚动视图,它也有一点帮助

将您正在分发的整个布局放在滚动视图中

于 2013-02-14T10:04:40.543 回答
0

这篇文章给了我解决我的问题的线索https://stackoverflow.com/a/5989385/1382250

我只是尝试将我的编辑文本更改为文本视图,现在它可以完美运行(在所有情况下都滚动窗口)。

于 2013-02-14T10:14:45.910 回答