Что эквивалентно ограничению автомакета iOS (greaterThanOrEquall) на Android?

Я пытаюсь наложить некоторые ограничения на Android XML, что выглядит очень сложно и неконкретно.

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

Например:

введите здесь описание изображения

Я знаю, как выразить отношение равенства в Android XML с помощью ConstraintLayout. Несмотря на то, что мне все еще нужны отступы или поля для смещения 30, это не большая проблема.

Но как сделать «большее» отношение? Я видел что-то под названием "maxWidth", "maxHeight", "miniWidth", "miniHeight". Но они не являются отношением между воззрениями. Хотя их можно использовать для некоторых поддельных представлений между реальными представлениями, тогда можно было бы сделать «больше».

Есть ли другие методы, которые могли бы решить это?


person iaomw    schedule 22.05.2017    source источник
comment
Механизмы верстки для Android и iOS сильно различаются. Нет эквивалента большеЧемОрравно. Как есть, на ваш вопрос нет ответа, потому что неясно, чего вы пытаетесь достичь. Пожалуйста, включите свой макет и код (минимальный, который показывает вашу проблему) и объясните, что вы пробовали и что вам действительно нужно.   -  person Dalija Prasnikar    schedule 22.05.2017
comment
Если у вас есть базовое описание или изображение макета, которого вы пытаетесь достичь. Я мог бы дать вам ограничение, которое вам нужно. ConstraintLayout — это не AutoLayout. В некотором смысле все Ограничения более чем равны. Правильнее что-то вроде Right(w1) = Right(w2) - маржа + ошибка. Где ошибки сведены к минимуму и сбалансированы.   -  person hoford    schedule 23.05.2017
comment
Спасибо. Я пытаюсь перевести авторазметку на андроид, поэтому конкретного примера быть не должно. Я думаю, что будет много способов решить эту проблему, когда она конкретна. Но мне нужно найти универсальное решение. @DalijaPrasnikar   -  person iaomw    schedule 23.05.2017
comment
К сожалению, универсального решения нет. Вам придется найти конкретные решения для конкретных проблем, как вы идете.   -  person Dalija Prasnikar    schedule 23.05.2017
comment
Привет @hoford, это не конкретная проблема, вы можете сослаться на это краткое введение от Apple. developer.apple.com/reference/uikit/nslayoutconstraint Затем, вот несколько примеров с изображения developer.apple.com/library/content/documentation /   -  person iaomw    schedule 23.05.2017


Ответы (1)


Вот идеальное решение от "Казуара", правда звезд не так уж и много, насчет производительности не уверен. Он основан на том же алгоритме, что и автомакет в iOS.

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

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

Итак, я могу использовать Greater or Less естественным образом. И у него также есть приоритеты для ограничений. Но, похоже, приоритетов сжатия и захвата контента нет.

<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>
person iaomw    schedule 26.05.2017