Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
- if (isLeftGravity) {
- measureChildWithMargins(
- avatar,
- widthMeasureSpec,
- 0,
- heightMeasureSpec,
- 0
- )
- measureChildWithMargins(
- messageBackground,
- widthMeasureSpec,
- avatar.measuredWidthWithMargins + messageBackground.marginLeft,
- heightMeasureSpec,
- 0
- )
- measureChildWithMargins(
- author,
- widthMeasureSpec,
- avatar.measuredWidthWithMargins + messageBackground.marginLeft + author.marginLeft,
- heightMeasureSpec,
- messageBackground.marginTop
- )
- measureChildWithMargins(
- message,
- widthMeasureSpec,
- avatar.measuredWidthWithMargins + messageBackground.marginLeft + message.marginLeft,
- heightMeasureSpec,
- author.measuredHeight + messageBackground.marginTop
- )
- measureChildWithMargins(
- flexBoxLayout,
- widthMeasureSpec,
- 0,
- heightMeasureSpec,
- maxOf(
- author.measuredHeightWithMargins + message.measuredHeightWithMargins,
- avatar.measuredHeightWithMargins
- )
- )
- } else {
- measureChildWithMargins(
- avatar,
- widthMeasureSpec,
- MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidth,
- heightMeasureSpec,
- 0
- )
- measureChildWithMargins(
- messageBackground,
- widthMeasureSpec,
- MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins,
- heightMeasureSpec,
- 0
- )
- measureChildWithMargins(
- author,
- widthMeasureSpec,
- MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins - messageBackground.marginLeft,
- heightMeasureSpec,
- messageBackground.marginTop
- )
- measureChildWithMargins(
- message,
- widthMeasureSpec,
- MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins - messageBackground.marginLeft,
- heightMeasureSpec,
- author.measuredHeight + messageBackground.marginTop
- )
- measureChildWithMargins(
- flexBoxLayout,
- widthMeasureSpec,
- messageBackground.left,
- heightMeasureSpec,
- maxOf(
- messageBackground.measuredHeightWithMargins,
- avatar.measuredHeightWithMargins
- )
- )
- }
- val contentWidth = avatar.measuredWidthWithMargins + messageBackground.measuredWidthWithMargins
- val contentHeight = flexBoxLayout.measuredHeightWithMargins + messageBackground.measuredHeightWithMargins
- setMeasuredDimension(
- resolveSize(contentWidth, widthMeasureSpec),
- resolveSize(contentHeight, heightMeasureSpec)
- )
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement