Android Studio предупреждает: слияние элементов здесь запрещено
Я создаю собственное представление на основе 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
, но приложение работает.
Что не так?
Ответы
Ответ 1
Я считаю, что это просто глюк в Android-студии. Даже официальная документация merge
в качестве прямого потомка layout
: https://developer.android.com/topic/libraries/data-binding/index.html
Изменение: я подал ошибку там: https://code.google.com/p/android/issues/detail?id=286406&thanks=286406&ts=1490873944
Edit2: исправлена ошибка\o/в AS 3.5 Canary 12
Ответ 2
На самом деле вам совсем не нужно слияние, так как у вас есть макет в корне для databisnig.
& Л; слияние > тег здесь лишний!
Использовать <merge> Тег
Тег помогает исключить избыточные группы просмотра в вашем представлении иерархия при включении одного макета внутри другого
От: Документация по Android
Макет как слияние не будет нарисован, а система игнорирует их во время рисования.
Утвердить, что я выполнил раскладки макетов по Hierarchy View в Android Device Monitor для макета.. он не существует, что означает, что он выполняет ту же работу, что и тег merge. вы можете проверить это самостоятельно!
Надеюсь, что это может помочь.
Ответ 3
Сделать <merge>
первым тегом в файле.