gpt4 book ai didi

android - 关于布局别名的 Android 文档不正确?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:47 24 4
gpt4 key购买 nike

我想弄清楚如何使用最少的样板代码重用或“别名”布局。

似乎Android documentation about layout aliases是不正确的,当然看起来不一致。本文档部分以以下布局文件为例:

<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').

Elsewhere in the Android documentation , 它们显示了一种不同的、看似颠倒的和不正确的别名布局方式:

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>

运行此命令会导致 LogCat 中出现以下错误 E/AndroidRuntime(1558): android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true .所以这个错误似乎强化了这个 <include> 的事实<merge> pair 一定是错误的,因为它需要一个不必要的 parent 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>

最佳答案

第一种技术有效,您只需将 <resources> 文件放在正确的文件夹中即可。它应该位于 values 文件夹中,而不是 layout 文件夹中,因为您在通过 <include> 重用布局时可能会这样。

例如,假设您有一个名为 editor.xml 的布局,它位于 layout 文件夹中。假设您想在 smallnormal 屏幕尺寸上使用专门的布局。如果您不想重复自己,只需将此布局复制并粘贴到 layout-smalllayout-normal 文件夹中,并在每个文件夹中将其命名为 editor.xml。因此,您将拥有三个名为 editor.xml 的文件。

如果您不想重复,您可以将专门的布局放在主 layout 文件夹中,并将其命名为 compact_editor.xml 。然后,您将在 layout.xmlvalues-small 文件夹中创建一个名为 values-normal 的文件。每个文件将显示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="editor" type="layout">@layout/compact_editor</item>
</resources>

我已经提交了关于其他两个问题的 documentation issue

关于android - 关于布局别名的 Android 文档不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com