【发布时间】:2019-08-20 05:40:56
【问题描述】:
在我的软件键盘中,候选人视图与用户应用程序重叠并隐藏了 UI 的底部。
这发生在 Android 6.0 及更高版本中。相同的 APK 在 Android 4.4 中运行良好。键盘视图和候选视图的 onMeasure() 处理程序以下列方式实现:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int rwidth = MeasureSpec.getSize(widthMeasureSpec);
int w = Math.min(InputViewMetrics.screenWidth, rwidth);
int h = InputViewMetrics.candidatesViewHeight;
this.setMeasuredDimension(w, h);
}
我还根据输入模式使用 true 或 false 调用 setCandidatesViewShown(),但切换候选视图并不能修复重叠。同样,这种行为在以前的 Android 版本中不会发生。编译该应用程序是为了与清单中的以下行兼容:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="26" />
可以做些什么来解决这种重叠?当候选人视图可见性发生变化时,如何确保用户应用刷新其布局?
【问题讨论】:
-
是不是跟adjustpan、adjustsize之类的东西有关
-
@ManojPerumarath 该应用会调整其 UI 的大小,但会忽略其他候选人视图。在计算尺寸调整时,似乎候选视图在更高版本的 android 中被放弃了。但我需要防止来自 IME,而不是来自我无法控制的用户应用程序。
-
当前焦点在蓝色视图,它也是一个输入视图,所以android忽略它下面的所有视图。这就是原因
-
@ManojPerumarath 在 Android 4.4 中,当切换候选视图时,顶视图会正确调整。在 Android 6.0 中,顶视图只调整到键盘高度,而不是候选视图高度。
-
屏幕大小和屏幕密度呢,@bkxp