Go Gio 实战:煮蛋计时器的实现之带边距的按钮

01 本节目标

在按钮两边加上空白,实时器即带边距的战煮按钮,如下图。蛋计的实带边

Button with margin

02 关键代码

为了突出结构,按钮主要关注下面关键点: 使用 layout.Inset 定义边距 布局这些边距

在这些边距内创建按钮

代码如下:

layout.Flex{      // ... }.Layout(gtx,实时器      layout.Rigid(         func(gtx C) D {              // 1、使用 layout.Inset 定义边距             margin := layout.Inset{                  // ...             }             // 2、战煮布局这些边距             margins.Layout(                 // 3、蛋计的实带边在这些边距内创建按钮                 func(gtx C) D {                      btn := material.Button(th,按钮 &startButton, "Start")                     return btn.Layout(gtx)                 },             )             }         }     )     ) 

03 代码详解

上面就像一个中间有一个按钮的甜甜圈。亿华云这个比喻形象吗?实时器

Button inside inset

边距是使用 layout.Inset{ } 构建的。它是战煮一个结构体,定义了小部件周围的蛋计的实带边空间:

margins := layout.Inset{      Top:    unit.Dp(25),     Bottom: unit.Dp(25),     Right:  unit.Dp(35),     Left:   unit.Dp(35), } 

在这里,margins 使用设备独立的按钮单位:unit.Dp。如果你希望所有边的源码下载实时器边距都相同,还有一个方便的战煮 UniformInset( ),可以为你节省几次按键操作。蛋计的实带边

04 完整代码

以下是 system.FrameEvent 部分的完整代码:

case system.FrameEvent:     gtx := layout.NewContext(&ops, e)     // Lets try out the flexbox layout concept     layout.Flex{          // Vertical alignment, from top to bottom         Axis: layout.Vertical,         // Empty space is left at the start, i.e. at the top         Spacing: layout.SpaceStart,     }.Layout(gtx,         layout.Rigid(             func(gtx C) D {                  // 1、使用 layout.Inset 定义边距                 margins := layout.Inset{                      Top:    unit.Dp(25),                     Bottom: unit.Dp(25),                     Right:  unit.Dp(35),                     Left:   unit.Dp(35),                 }                 // 2、布局这些边距                 return margins.Layout(gtx,                     // 3、在这些边距内创建按钮                     func(gtx C) D {                          btn := material.Button(th, &startButton, "Start")                         return btn.Layout(gtx)                     },                 )             },         ),     )     e.Frame(gtx.Ops) 站群服务器
IT科技类资讯
上一篇:2023 NVIDIA 初创企业展示 · 半程展示圆满收官​
下一篇:使用Rust构建一个图片服务器有多难?