ConstraintSet如何清除constrainMaxHeight?

Posted

技术标签:

【中文标题】ConstraintSet如何清除constrainMaxHeight?【英文标题】:ConstraintSet how to clear constrainMaxHeight? 【发布时间】:2020-10-23 06:10:44 【问题描述】:

我有一个 ConstraintLayout,我正在使用 constraintSet.constrainMaxHeight(R.id.recyclerView, (Utils.getScreenHeight() / 2.2).toInt()) 添加一个 maxHeight 约束

稍后在我的执行中,我需要删除这个最大高度限制,所以我这样做了:

constraintSet.connect(R.id.recyclerView, TOP, PARENT, TOP)
constraintSet.constrainHeight(R.id.recyclerView, MATCH_CONSTRAINT)
constraintSet.constrainMaxHeight(R.id.liveFeedRecyclerView, UNSET)

但是,我的 recyclerView 仍然具有分配给它的“最大高度”。 取消设置最大高度约束并将我的视图高度设置为匹配约束的正确方法是什么?

P.S.:所有的常量值都是在 ConstraintSet 类中找到的常量。

【问题讨论】:

【参考方案1】:

看起来ConstraintLayout默认最大高度为Integer.MAX_VALUE(十进制值为2147483647),所以尝试使用它而不是UNSET,它是-1。

【讨论】:

很好的发现,谢谢!我会试试看,让你知道!

以上是关于ConstraintSet如何清除constrainMaxHeight?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ConstraintSet 设置类似 app:layout_constraintBottom_toBottomOf 的内容?

什么相当于ConstraintSet中的“toStartOf”和“toTopOf”?

在 BottomSheetFragment 上重复 ConstraintSet 的过渡动画问题

以编程方式修改 ConstraintSet 链未按预期工作

使用 ConstraintSet 时测量的布局大小为零

使用 ConstraintSet 以编程方式将 Button 添加到 ConstrainLayout