How to use the constraints and sizes of other widgets during the build phase

后端 未结 2 539
离开以前
离开以前 2021-01-16 01:15

I want to make sure I cover all cases

  1. A Parent widget reads (and possibly uses) a child\'s size or constraints

  2. A Child widget reads (and po

2条回答
  •  粉色の甜心
    2021-01-16 01:57

    I'm the author of rect getter plugin , and I quite intrested in your qestion.

    Yes , as other guys said, I think flutter is a very flexible UI framwork, so we do not need know a widget's actual size in most case. But when I tried to write a anime effect whitch simulate open a book, I found it was necessary to know a 'Card''s rect information, and finally I found the way to get a rect from a rended object from the source code of heros.dart. As a result , it became the rect getter plugin whitch you known.

    In fact, maybe I'm facing the same problem with you, because I want to write a 'Masonry' layout like this, so I should know the previous items's rect infomation to decide where the current item should be drawn.

    My solution is : 1.Wrap the child widget by rect_getter, build the layout normally first; 2.And then, use timer to get the child's rect information immediately after build complete; 3.Call setState() to rebuild the layout, and use children's rect information to calculate each child's constraintbox in viewport.

    Code fragment (NOT finished) :

    and current progress:

    My codes can found here, but they were so terrible and commented use Chinese, so I don't think you will want to read them.

提交回复
热议问题