gpt4 book ai didi

android - 不需要 xml 中的 layout_width 的自定义 View

转载 作者:行者123 更新时间:2023-11-29 01:12:36 26 4
gpt4 key购买 nike

Android SDK 有 TableLayout 容器:

 <TableLayout
android:id="@+id/tablelayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:text="Some text"
android:padding="3dip" />
</TableRow>
</TableLayout>

TableLayout 有layout_width 和layout_height。几乎每个View都需要在xml中指定layout_width和layout_height。但是 TableRow 不需要它。

我想创建 Layout(从 FrameLayout 扩展)哪些元素不需要 layout_width 和 layout_height(我会用一些魔法在内部计算大小)。

如何从自定义 View 的 xml 中删除 layout_width/layout_height 要求?

最佳答案

据我所知,工具需要这些属性,工具本身中的某些框架小部件(如 TableLayout 和 TableRow)有异常(exception)。这可能与这些小部件为其子部件生成 LayoutParams 的方式有关;通常缺少 layout_widthlayout_height 会在运行时导致异常,但是这两个小部件都在各自的 中覆盖了 setBaseAttributes() LayoutParams 类不抛出异常,而是设置一个类似 MATCH_PARENT 的值。

您可以尝试做同样的事情,但如果您不在 XML 中提供这些属性,我预计构建工具仍会产生警告或错误。也许有一种方法可以抑制它,但我认为您不能仅针对自定义 ViewGroup 的 subview 抑制它,所以老实说,如果我是您,我不会遇到麻烦。

没有人说您必须遵守 XML 中给定的宽度和高度,您仍然可以做任何您想做的“魔术”,只是如果您决定让其他开发人员可以使用您的自定义 ViewGroup,您可能会打破预期。

关于android - 不需要 xml 中的 layout_width 的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907874/

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