Whats the difference between double.infinity and MediaQuery?

前端 未结 1 642
醉话见心
醉话见心 2020-12-31 06:55

To occupy the whole width or height , I use double.infinity, but going through some of the flutter samples, I have noticed many people use MediaQuery.of(c

相关标签:
1条回答
  • 2020-12-31 07:23

    The difference can be summarized into:

    • I want to be as big as my parent allows (double.infinity)
    • I want to be as big as the screen (MediaQuery).

    Usually, you'll want to use double.infinity, but it's not always possible.

    Some Widgets allow their children to be as big as they want to be (Column, ListView, OverflowBox...). In that situation using double.infinity creates a paradox:

    • The parent allows any size
    • The child wants the biggest size allowed by the parent

    Using MediaQuery in these situations is bad though. You will rarely want to do that unless you're creating a widget similar to Scaffold.

    That's where widgets such as IntrinsincHeight comes in handy. These widgets are able to solve the paradox, and therefore have a valid layout.

    0 讨论(0)
提交回复
热议问题