Android上的iOS自动布局约束(greaterThanOrEquall)等价物是什么?

时间:2017-05-22 15:22:07

标签: android ios autolayout android-relativelayout android-constraintlayout

我正在尝试对Android XML做一些约束,这看起来非常困难和非特定。

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ViewswithIntrinsicContentSize.html

例如:

enter image description here

我知道如何使用ConstraintLayout表达android XML上的平等关系。即使我仍然需要填充或边距为30的偏移量,这不是一个大问题。

但如何做更好的"关系? 我看到有一些名为" maxWidth"," maxHeight"," miniWidth"," miniHeight"。但它们不是观点之间的关系。虽然可以在真实视图之间的某些虚假视图中使用它们,但是可能可以执行更大的"。

还有其他方法可以解决吗?

1 个答案:

答案 0 :(得分:1)

这是来自" Cassowary"的完美解决方案,虽然没有太多的明星,但我不确定性能。它基于iOS上的自动布局相同的算法。

https://github.com/alexbirkett/android-cassowary-layout http://constraints.cs.washington.edu/cassowary

https://www.youtube.com/watch?v=_FYroNxqFqo

所以,我可以以自然的方式使用大或小。它也有限制的优先权。但是,看起来没有内容拥抱和压缩优先级。

<string-array name="stairs">

    <item>blue.x == 0</item>
    <item>blue.y == 0</item>**strong text**
    <item>blue.width == 100dp</item>
    <item>blue.height == blue.width</item>

    <item>green.width == blue.width</item>
    <item>green.height == blue.height</item>
    <item>green.x == blue.y2</item>
    <item>green.y == blue.y2</item>

    <item>red.width == green.width</item>
    <item>red.height == green.height</item>
    <item>red.x == green.x2</item>
    <item>red.y == green.y2</item>

    <item>container.width GEQ red.right</item>
    <item>container.height GEQ red.bottom</item>

</string-array>