Advertisement
BrightOS

Untitled

Mar 16th, 2022
813
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.55 KB | None | 0 0
  1. override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
  2.  
  3.         if (isLeftGravity) {
  4.             measureChildWithMargins(
  5.                 avatar,
  6.                 widthMeasureSpec,
  7.                 0,
  8.                 heightMeasureSpec,
  9.                 0
  10.             )
  11.  
  12.             measureChildWithMargins(
  13.                 messageBackground,
  14.                 widthMeasureSpec,
  15.                 avatar.measuredWidthWithMargins + messageBackground.marginLeft,
  16.                 heightMeasureSpec,
  17.                 0
  18.             )
  19.  
  20.             measureChildWithMargins(
  21.                 author,
  22.                 widthMeasureSpec,
  23.                 avatar.measuredWidthWithMargins + messageBackground.marginLeft + author.marginLeft,
  24.                 heightMeasureSpec,
  25.                 messageBackground.marginTop
  26.             )
  27.  
  28.             measureChildWithMargins(
  29.                 message,
  30.                 widthMeasureSpec,
  31.                 avatar.measuredWidthWithMargins + messageBackground.marginLeft + message.marginLeft,
  32.                 heightMeasureSpec,
  33.                 author.measuredHeight + messageBackground.marginTop
  34.             )
  35.  
  36.             measureChildWithMargins(
  37.                 flexBoxLayout,
  38.                 widthMeasureSpec,
  39.                 0,
  40.                 heightMeasureSpec,
  41.                 maxOf(
  42.                     author.measuredHeightWithMargins + message.measuredHeightWithMargins,
  43.                     avatar.measuredHeightWithMargins
  44.                 )
  45.             )
  46.         } else {
  47.             measureChildWithMargins(
  48.                 avatar,
  49.                 widthMeasureSpec,
  50.                 MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidth,
  51.                 heightMeasureSpec,
  52.                 0
  53.             )
  54.  
  55.             measureChildWithMargins(
  56.                 messageBackground,
  57.                 widthMeasureSpec,
  58.                 MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins,
  59.                 heightMeasureSpec,
  60.                 0
  61.             )
  62.  
  63.             measureChildWithMargins(
  64.                 author,
  65.                 widthMeasureSpec,
  66.                 MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins - messageBackground.marginLeft,
  67.                 heightMeasureSpec,
  68.                 messageBackground.marginTop
  69.             )
  70.  
  71.             measureChildWithMargins(
  72.                 message,
  73.                 widthMeasureSpec,
  74.                 MeasureSpec.getSize(widthMeasureSpec) - avatar.measuredWidthWithMargins - messageBackground.measuredWidthWithMargins - messageBackground.marginLeft,
  75.                 heightMeasureSpec,
  76.                 author.measuredHeight + messageBackground.marginTop
  77.             )
  78.  
  79.             measureChildWithMargins(
  80.                 flexBoxLayout,
  81.                 widthMeasureSpec,
  82.                 messageBackground.left,
  83.                 heightMeasureSpec,
  84.                 maxOf(
  85.                     messageBackground.measuredHeightWithMargins,
  86.                     avatar.measuredHeightWithMargins
  87.                 )
  88.             )
  89.         }
  90.  
  91.         val contentWidth = avatar.measuredWidthWithMargins + messageBackground.measuredWidthWithMargins
  92.         val contentHeight = flexBoxLayout.measuredHeightWithMargins + messageBackground.measuredHeightWithMargins
  93.  
  94.         setMeasuredDimension(
  95.             resolveSize(contentWidth, widthMeasureSpec),
  96.             resolveSize(contentHeight, heightMeasureSpec)
  97.         )
  98.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement