@dsukmanova Сукманова Дарья - #22
Conversation
|
А можешь скинуть код с которым не получилось и вьюха по высоте растягивалась? |
| int mpHeightSpec = MeasureSpec.makeMeasureSpec(matchParentElement.getMeasuredHeight(), MeasureSpec.EXACTLY); | ||
| matchParentElement.measure(mpWidthSpec, mpHeightSpec); | ||
| } | ||
| setMeasuredDimension(width, height); |
There was a problem hiding this comment.
По хорошему, мы должны считать высоту и ширину, основываясь на потомках, так как width или height здесь могут быть равны 0
|
@Drnkn |
|
@dsukmanova Но видимо это как-то не так должно работать, потому что тогда вью с match_parent не отображается, похоже, что из за этой строчки matchParentElement.getMeasuredHeight(), так как getMeasuredHeight равно 0, вью же не была еще измерена. А вообще, мне кажется, что вью растягивалась на всю высоту, потому что ты передавала ей родительские measureSpec, поэтому родные параметры игнорировались. |
| if (matchParentElement != null) { | ||
| int mpWidthSpec = MeasureSpec.makeMeasureSpec(Math.max(0, width - elementsWidth), MeasureSpec.EXACTLY); | ||
| int mpHeightSpec = MeasureSpec.makeMeasureSpec(matchParentElement.getMeasuredHeight(), MeasureSpec.EXACTLY); | ||
| matchParentElement.measure(mpWidthSpec, mpHeightSpec); |
There was a problem hiding this comment.
Здесь может быть проблема в том, что при измерении через View.measure не учитываются отступы, поэтому вьюха может обрезаться, в measureChild отступы учитываются "волшебным" образом
Примечание: хотела не делать measureChild для view с параметром match-parent в цикле, а сделать отдельно после:
matchParentElement.measure(mpWidthSpec, heightMeasureSpec);В таком случае получала, что этот элемент растягивался на всю высоту. Не смогла понять, почему так происходит, можете пожалуйста пояснить?