小编Jam*_*mes的帖子

是否可以强制对齐 Wrap 小部件中的特定子小部件?

我正在尝试在 flutter 中创建一个布局,由一行与两个子小部件组成,第一个与左侧对齐,第二个与右侧对齐,如果容器太窄,它也会包裹小部件。

这类似于这里提出的问题Flutter aligning two items on Extremes - 一个在左边,一个在右边,这可以Wrapalignment: WrapAlignment.spaceBetween. 但是,当小部件使用此方法包装时,包装到新运行的右侧小部件不再右对齐。(截图

我希望发生的是正确的小部件在包装时保持与右侧对齐。在带有 flexbox 的 css 中,这可以通过右侧小部件上的 flex-grow:1 或 margin-left:auto 实现,如本代码笔所示(调整页面宽度以查看我想要的布局)。

到目前为止,我已经尝试过颤振:

  • 将正确的小部件包装在小Flexible部件中以尝试使其在包装时占据剩余的宽度,因此我可以在其中正确对齐,但这会引发错误:
   Incorrect use of ParentDataWidget.
   Flexible widgets must be placed inside Flex widgets.
Run Code Online (Sandbox Code Playgroud)
  • 将正确的小部件包装在小部件内Align,但这始终会扩展到全宽并导致环绕,即使屏幕足够宽以让两个小部件位于同一行
  • 使用CustomMultiChildLayoutMultiChildLayoutDelegate,它可以创建正确的布局,(截图),然而它似乎并不能够设定根据孩子小部件高度widget的高度,迫使你使用任意的高度值。MultiChildLayoutDelegate文档

覆盖 getSize 以控制布局的整体大小。布局的大小不能依赖于子项的布局属性。

那么是否有可能创建一个布局,当它必须换行时,正确的小部件保持与右边缘对齐?

flutter flutter-layout

7
推荐指数
1
解决办法
1181
查看次数

标签 统计

flutter ×1

flutter-layout ×1