我正在处理一个包含一些EditText的活动。当我点击/触摸EditText时,软键盘会出现。但是位于屏幕底部的EditText与软键盘重叠。EditText的上半部分显示,下半部分在键盘下面。
我在AndroidManifest.xml中设置了android:windowSoftInputMode="adjustPan"
有什么建议可以避免这种情况吗?
我正在处理一个包含一些EditText的活动。当我点击/触摸EditText时,软键盘会出现。但是位于屏幕底部的EditText与软键盘重叠。EditText的上半部分显示,下半部分在键盘下面。
我在AndroidManifest.xml中设置了android:windowSoftInputMode="adjustPan"
有什么建议可以避免这种情况吗?
对我来说,我不想假设键盘的高度是一定的尺寸。你关心的任何视图,都可以创建一个onTouchListener,然后执行以下操作:
setOnTouchListener(new OnTouchListener() {
Runnable shifter=new Runnable(){
public void run(){
try {
int[] loc = new int[2];
//get the location of someview which gets stored in loc array
findViewById(R.id.someview).getLocationInWindow(loc);
//shift so user can see someview
myscrollView.scrollTo(loc[0], loc[1]);
}
catch (Exception e) {
e.printStackTrace();
}
}}
};
Rect scrollBounds = new Rect();
View divider=findViewById(R.id.someview);
myscollView.getHitRect(scrollBounds);
if (!divider.getLocalVisibleRect(scrollBounds)) {
// the divider view is NOT within the visible scroll window thus we need to scroll a bit.
myscollView.postDelayed(shifter, 500);
}
});
//本质上,我们创建了一个可运行的程序,它会滚动到某个视图的新位置,该视图是您希望在屏幕上可见的。只有当该视图不在滚动视图的边界内(即不在屏幕上)时,才执行该可运行程序。这样,它就会将滚动视图移动到所引用的视图(在我的情况下是“someview”,它是一条分隔线)。