如何根据父容器的尺寸调整Android视图的大小

109

如何根据其父布局的大小设置视图大小。例如,我有一个填满整个屏幕的RelativeLayout,我希望子视图(例如ImageView)占据整个高度和1/2的宽度?

我已经尝试了覆盖所有onMeasureonLayoutonSizeChanged等方法,但都无法使其正常工作……


可以使用ConstraintLayout来实现,参考这里:https://dev59.com/0VoU5IYBdhLWcg3wk3l2 - Ali Nem
11个回答

-1

我已经困扰这个问题很长时间了,我想改变我的DrawerLayout的抽屉宽度,它是其父级的第二个子元素。 最近我找到了解决方法,但不知道是否有更好的想法。

override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
    super.onLayout(changed, l, t, r, b)
    (getChildAt(1).layoutParams as LayoutParams).width = measuredWidth/2
}

使用这种方式的问题在于,在onLayout中设置布局参数可能会导致无限递归,UI线程可能永远不会变得空闲。 - Tushar Kathuria
@TusharKathuria 怎么回事?在这个布局之后,子LP的宽度模式是EXACTLY,并且不会再改变了。 - John 6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接