我使用 adjustPan 自动平移我的应用程序,以使 EditText 字段在软键盘出现时可见。到目前为止,这运行良好,但在最新的 Android 4.4 Kitkat 版本中,操作栏像往常一样平移,但留下了一个白框。我尝试使用 Eclipse View Hierarchy 工具对此进行调试,但它忽略了该框。我还尝试了 v19 样式,但没有成功。这发生在各种 Kitkat Nexus 设备和模拟器上。
我很高兴将操作栏留在屏幕上或在窗口平移时将其完全删除。任何帮助将不胜感激移除盒子。
我使用 adjustPan 自动平移我的应用程序,以使 EditText 字段在软键盘出现时可见。到目前为止,这运行良好,但在最新的 Android 4.4 Kitkat 版本中,操作栏像往常一样平移,但留下了一个白框。我尝试使用 Eclipse View Hierarchy 工具对此进行调试,但它忽略了该框。我还尝试了 v19 样式,但没有成功。这发生在各种 Kitkat Nexus 设备和模拟器上。
我很高兴将操作栏留在屏幕上或在窗口平移时将其完全删除。任何帮助将不胜感激移除盒子。
我发现这只发生在应用程序硬件加速在清单文件中设置为 true 的情况下。
我想保持硬件加速打开,所以我在我的 onCreate 方法中编写了这个代码片段,以仅将其关闭操作栏容器。
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
Resources res = Resources.getSystem();
int id = res.getIdentifier("action_bar_overlay_layout", "id", "android");
ViewGroup overlayLayout = (ViewGroup) this.findViewById(id);
overlayLayout.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
更新
此问题已在 Android L 预览版 API 20 中修复。请注意,上述代码会在 Android L 中导致异常,因此版本条件需要对 Kitkat 明确。
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {