将视图放置在高度为 wrap_content 的相对布局的底部

Posted

技术标签:

【中文标题】将视图放置在高度为 wrap_content 的相对布局的底部【英文标题】:Place a view to the bottom of a relative layout with height wrap_content 【发布时间】:2017-12-17 06:33:45 【问题描述】:

所以我想在具有高度 wrap_content 的相对布局的底部放置一个视图。 根本没有工作,我记得为什么....(直接来自doc)

请注意,RelativeLayout 的大小与其子项的位置之间不能存在循环依赖关系。例如,您不能有一个高度设置为 WRAP_CONTENT 而子级设置为 ALIGN_PARENT_BOTTOM 的 RelativeLayout。

这似乎是一件非常简单的事情。如果没有其他可以底部对齐的视图,有没有办法破解它并使其工作? 我希望在实际展示一个我尝试过 LinearLayout 和 FrameLayout 但无法得到我想要的最终结果的特定非工作示例之前有一个标准的“hack”。

【问题讨论】:

【参考方案1】:

首先,将您的代码放在首位。从您的场景来看,您似乎已经在某个可能导致循环依赖的地方声明了 android:layout_below。

【讨论】:

没有那样的。只是视图没有正确对齐 我也遇到过这个问题,因为重力我设置为父视图的中心。 对不起,我不明白你的意思。你有一个高度为wrap_content 的父相对布局和一个align_parent_bottom=true 的子视图并且它工作正常?这个怎么可能?甚至文档也说这确实 not 正常工作(请参阅帖子中的参考资料)。在我的情况下,相对布局以某种方式扩展以获得其父级的高度,整个布局被“破坏” 这只是一个预览和一个只有 1 个视图的布局。问题是,RelativeLayout 在所有孩子都定位好自己之后计算它的高度,所以我们不能要求孩子与底部对齐,例如***.com/questions/6486214/… 尝试添加更多视图并在非预览设备上进行检查 实际上在您的照片中您重现了该问题。相对布局获取父级的高度,但您定义了 wrap_content

以上是关于将视图放置在高度为 wrap_content 的相对布局的底部的主要内容,如果未能解决你的问题,请参考以下文章

将视图动态添加到具有 wrap_content 高度的 LinearLayout 不会显示任何内容

将高度设置为自定义视图组

异常的 WRAP_CONTENT 行为

在父视图的两侧放置两个宽度为 wrap_content 的多行 TextView

为啥我放置在滚动视图中的图像视图高度扭曲?

安卓 |滚动视图 |高度 wrap_content