@@ -68,7 +68,6 @@ class OverlayLayout : ConstraintLayout {
6868 val vXY = IntArray (2 )
6969 getLocationOnScreen(vXY)
7070 val vAnchorXY = IntArray (2 )
71- //
7271 overlay.anchors.forEach { e: Anchor ->
7372 val vAnchor: View = e.find.onFind(viewGroup, e) ? : return @forEach
7473 // 计算宽度及位置
@@ -82,23 +81,24 @@ class OverlayLayout : ConstraintLayout {
8281 rect.inset(- outset, - outset)
8382 // 锚点生产及绘制
8483 e.draw.onDraw(canvas, paint, e, rect)
85- val anchor = onFakeAnchor(e.id, rect.toRect() )
84+ val anchor = onFakeAnchor(e.id, rect)
8685 // 标记层布局
8786 val markers = overlay.markers.filter { it.anchor == e.id }
8887 markers.forEach { onLayoutMarker(viewGroup.context, it, anchor) }
8988 }
9089 }
9190
92- private fun onFakeAnchor (id : Int , rc : Rect ): View {
91+ private fun onFakeAnchor (id : Int , rc : RectF ): View {
9392 val v: View ? = getViewById(id)
9493 if (null != v) return v
9594 val view = View (context)
9695 view.id = id
97- addView(view, rc.width(), rc.height())
96+ addView(view, rc.width().toInt() , rc.height().toInt ())
9897 val cs = ConstraintSet ()
9998 cs.clone(this )
100- cs.connect(id, ConstraintSet .START , ConstraintSet .PARENT_ID , ConstraintSet .START , rc.left)
101- cs.connect(id, ConstraintSet .TOP , ConstraintSet .PARENT_ID , ConstraintSet .TOP , rc.top)
99+ val iid = ConstraintSet .PARENT_ID
100+ cs.connect(id, ConstraintSet .START , iid, ConstraintSet .START , rc.left.toInt())
101+ cs.connect(id, ConstraintSet .TOP , iid, ConstraintSet .TOP , rc.top.toInt())
102102 cs.applyTo(this )
103103 return view
104104 }
0 commit comments