跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个 flutter 相对布局的问题
未分類
5 5 月 2020

请教一个 flutter 相对布局的问题

请教一个 flutter 相对布局的问题

資深大佬 : toooo 21

现在我希望实现一个两个元素相对的布局, 其中元素 A 在整个屏幕 XY 居中展示, 元素 B 要在 A 上的顶部一段距离展示.

举个例子, iOS 中约束为 A 的 centerX 和 centerY 相对父 view 都是 0, B 的 bottom 相对 A 的 top 一段距离, centerX 也是相对父 view 是 0

在 flutter 布局中我考虑用 stock 容器, 这样可以有同级的子 widget, 但是其子 widget 并不能相对布局, 我现在能想到的办法是, 元素 A 用 center 包括, 实现居中效果, 元素 B 同样适用 center 然后设置其 margin bottom, 使其位置偏移到元素 A 的顶部, 这样虽能实现目前的需求, 但感觉灵活度不够, 玩意元素 A 的高度不固定或者会动态变化则会很难处理.

现在请教各位大佬有没有更好的解决方案呢, 我特意画了个来简单展示这个布局的需求

请教一个 flutter 相对布局的问题

大佬有話說 (7)

  • 資深大佬 : asionbo

    center(
    column(
    B,
    sizebox,
    A
    ))

    可以这样试试

  • 資深大佬 : a0000

    @asionbo 主要求 A 居中显示

  • 資深大佬 : so1n

    太久没写了,方法名忘了
    大致是渲染后获取 a widget 的 context 的 offset,得出 a 所在位置,再把位置传给 b

  • 資深大佬 : santiago009

    css 写法,你自己转 div 为 Column

    <div style=”display:flex”>
    <div style=”flex:1;display:flex;justify-content:flex-end”>
    元素 b
    </div>
    <div style=”flex:2;display:flex;align-items:center;justify-content:center”>
    元素 a
    </div>
    <div style=”flex:1″ />
    </div>

  • 主 資深大佬 : toooo

    @so1n 这个办法是动态获取 A 的位置大小, 然后决定 B 的位置吧, 好像只能这样了!

  • 資深大佬 : so1n

    @toooo 是啊,在做新手引导,指引拥护点击这个按钮做什么时就是用这个方法

  • 資深大佬 : so1n

    @so1n 拥护→用户

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具