MyGit

pingbird/boxy

Fork: 25 Star: 426 (更新于 2024-05-21 20:41:24)

license: NOASSERTION

Language: Dart .

Overcome limitations of built-in layouts, advanced flex, custom multi-child layouts, slivers, and more!

最后发布版本: 2.2.0 ( 2024-01-21 10:06:55)

官方网址 GitHub网址

boxy, Layout made simple

About

Boxy is a Flutter package created to overcome the limitations of built-in layout widgets, it provides utilities for flex, custom multi-child layouts, dynamic widget inflation, slivers, and more!

The package is ready for production use, it has excellent documentation, test coverage, and passes strict analysis.

Check out the new wiki! https://boxy.wiki

Flex layouts

A common design problem is when you need one or more children of a Row or Column to have the same cross-axis size as another child in the list, with boxy this can be achieved trivially using BoxyRow, BoxyColumn and Dominant.

Using BoxyRow. A sidebar matches the height of a dynamically sized container

Using BoxyColumn. An underbar matches the width of a dynamically sized container

Using BoxyColumn and BoxyFlexible.align; The top child has a custom cross axis alignment from the others

See the documentation of BoxyRow and BoxyColumn for more information.

Custom layouts

One of the pains of implementing custom layouts is learning the RenderObject model and how verbose it is, to make this process easier we provide an extremely simple container CustomBoxy that delegates layout, paint, and hit testing.

1. Declare widget using CustomBoxy 2. Implement delegate. Dynamic header and content in a column with an avatar pinned to the center of both

The most powerful feature of CustomBoxy is the ability to inflate arbitrary widgets at layout time, this means widgets can depend on the size of others, something previously impossible without hacky workarounds.

Lazy-loading children with BoxyDelegate.inflate to match the width of a container

See the documentation of CustomBoxy and BoxyDelegate for more information.

Slivers

Ever want to give SliverList a box decoration? The sliver library provides SliverContainer which allows you to use box widgets as the foreground or background of a sliver.

This library also provides SliverCard, a SliverContainer that looks like a card.

Adding a custom card-like background to a SliverList, while still building lazily

Also check out:

Miscellaneous

The utils library provides extensions with dozens of axis-dependant methods on BoxConstraints, Size, Offset, and more. These extensions make writing directional layouts significantly less cumbersome.

The OverflowPadding widget is similar to Padding but allows the child to overflow when given negative insets.

最近版本更新:(数据更新于 2024-05-07 13:37:05)

2024-01-21 10:06:55 2.2.0

2023-11-02 00:58:30 2.1.3

2023-10-12 03:52:34 2.1.2

2023-10-06 06:02:12 2.1.1

2023-08-17 04:34:46 2.1.0

2023-03-26 04:15:01 2.0.9

2023-02-13 10:57:02 2.0.8

2023-02-05 00:11:05 2.0.7

2022-08-05 11:07:14 2.0.6+2

2022-06-17 01:04:57 2.0.6+1

主题(topics):

flutter

pingbird/boxy同语言 Dart最近更新仓库

2024-07-06 19:46:15 ente-io/ente

2024-06-03 16:13:24 KRTirtho/spotube

2024-06-03 04:32:03 hiddify/hiddify-next

2024-05-18 10:56:31 felangel/data_class

2024-05-10 17:26:00 AppFlowy-IO/AppFlowy

2024-05-07 22:01:21 ReVanced/revanced-manager