2

我使用 adjustPan 自动平移我的应用程序,以使 EditText 字段在软键盘出现时可见。到目前为止,这运行良好,但在最新的 Android 4.4 Kitkat 版本中,操作栏像往常一样平移,但留下了一个白框。我尝试使用 Eclipse View Hierarchy 工具对此进行调试,但它忽略了该框。我还尝试了 v19 样式,但没有成功。这发生在各种 Kitkat Nexus 设备和模拟器上。

我很高兴将操作栏留在屏幕上或在窗口平移时将其完全删除。任何帮助将不胜感激移除盒子。

在此处输入图像描述

4

1 回答 1

4

我发现这只发生在应用程序硬件加速在清单文件中设置为 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) {
于 2014-02-14T02:29:11.437 回答