13

我基于 LinearLayout 创建自定义视图。类扩展了 LinearLayout 类,在布局中我有:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <merge>
        some staff here
    </merge>
</layout>

Android Studio 显示警告Element merge is not allowed here,但应用程序有效。

怎么了?

4

3 回答 3

5

我相信这只是Android工作室的一个小故障。甚至官方文档也merge有直接的孩子layouthttps ://developer.android.com/topic/libraries/data-binding/index.html

编辑:我在那里提交了一个错误:https ://code.google.com/p/android/issues/detail?id=286406&thanks=286406&ts=1490873944

Edit2:在 AS 3.5 Canary 12 中修复了错误 \o/

于 2017-03-30T11:34:39.540 回答
-2

实际上,您根本不需要合并,因为您在根目录中有 databisnig 的布局。<merge> 标签在这里是多余的!

使用 <merge> 标签

当在另一个布局中包含一个布局时,该标签有助于消除视图层次结构中的冗余视图组

来自:Android 文档

布局作为合并不会被绘制,系统在绘制过程中会忽略它们。

为了批准我在 Android Device Monitor 中通过 Hierarchy View 跟踪布局以进行布局 .. 它不存在,这意味着它与合并标记执行相同的工作。你可以自己检查!

希望这可能会有所帮助..

于 2016-06-01T09:09:45.380 回答
-5

使<merge>成为文件中的第一个标签。

于 2015-09-06T20:25:15.533 回答