Неправильная документация Android по псевдонимам макета?
Я хотел бы выяснить, как повторно использовать или "псевдоним" макеты с наименьшим стандартным кодом.
Кажется, чтоAndroid документация по псевдонимам макетов неверно, и, конечно, кажется противоречивым. Этот раздел документации показывает следующий файл макета в качестве примера:
<resources>
<item name="main" type="layout">@layout/main_twopanes</item>
</resources>
Если я пытаюсь скомпилировать это, я получаюAttribute is missing the Android namespace prefix
ошибка. Даже после добавления пространства имен кresources
стихия, я получаюerror: Error: String types not allowed (at 'type' with value 'layout').
В другом месте в документации Android, они показывают другой, казалось бы, перевернутый и неправильный путь к макетам псевдонимов:
To create an alias to an existing layout, use the element,
wrapped in a <merge>
. For example:
<?xml version="1.0" encoding="utf-8"?>
<merge>
<include layout="@layout/main_ltr"/>
</merge>
Запуск этого приводит к следующей ошибке в LogCatE/AndroidRuntime(1558): android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true
, Так что эта ошибка, кажется, подтверждает тот факт, что это<include>
<merge>
пара должна быть ошибкой, потому что она требует ненужного родителяView
.
Наконец,<merge>
documentationчто, кажется, противоречит первому направлению, не упоминая перевернутую форму верхнего уровня<merge><include/></merge>
.
To avoid including such a redundant view group, you can instead use the element as the root view for the re-usable layout. For example:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/add"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/delete"/>
</merge>