我的应用底部有一个编辑文字。我希望在获得触摸事件时始终实现这一点,软键盘会将整个窗口滚动到顶部,这样我的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;
}
});
我还在清单文件中设置了这个属性:
android:windowSoftInputMode="stateHidden|adjustPan"
答案 0 :(得分:1)
使用此
android:configChanges="keyboardHidden|orientation"
和
android:windowSoftInputMode="adjustPan"
让我知道使用这两个对你有帮助还是在你的虚拟键盘创建问题的布局中使用scrollview它也有点帮助
将您的整个布局放在滚动视图中分配
答案 1 :(得分:0)
这篇文章给了我解决问题的线索https://stackoverflow.com/a/5989385/1382250
我只是尝试更改文本视图的编辑文本,现在它完美运行(在所有情况下都滚动窗口)。