您现在的位置是:亿华云 > 系统运维

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

亿华云2025-10-03 07:05:29【系统运维】4人已围观

简介01 本节目标在按钮两边加上空白,即带边距的按钮,如下图。Button with margin02 关键代码为了突出结构,主要关注下面关键点: 使用 layout.Inset 定义边距

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) 云南idc服务商

很赞哦!(8265)