【Figma学习】之Auto Layout自动布局


学习资源:B站博主"设计师凯文CreativeKev",下面每一节均放置学习视频链接

学习链接: 点击进入

Auto Layout自动布局

自动布局用来指定元素之间的间距和排列方式,可以帮助实现组件、页面的响应式涉及,可以用到自动布局的地方有很多。比如,实现按钮长度随按钮文字变化而变化、控制页面上组件、模块之间的间距

制作基本的按钮

使用自动布局,在制作按钮时,无需文字+背景长方形的形式来组成一个按钮,只需要选择文字,然后快捷键Shift + A便可添加自动布局,因为自动布局的本质是一个画框,下面时详细的步骤:

  1. 边框+颜色填充 ,"T"输入文本后,快捷键Shift + A实现自动布局,即给文本加边框,然后即可对其进行颜色填充;
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  2. 间距调整,Auto Layout中调整高度和宽度,如左右间距24,上下间距8
    在这里插入图片描述
  3. 外观调整 Appearance(外观)下调整边框圆角
    在这里插入图片描述
    效果图如下在这里插入图片描述
    在这里插入图片描述
    :1.长度随效果字长自动扩展的原因是在“Auto layout”下的宽度设置中,默认设定为"Hug content”意思是内容决定宽度,如果我们想要固定宽度的按钮,需选择“Fixed width(固定宽度)”即可。
    2.取消自动布局,快捷键Option + Shift+A(Mac系统),Alt + Shift+A(Windows系统);或 右键选择“Remove auto layout” 或者点击Auto layout图标即可取消自动布局
    在这里插入图片描述

卡片轮番

自动布局还可以帮助我们把多个元素按照规定的间距、布局组合起来,下面以卡片轮番为例:
1.素材导入:选择一整图片并插入文本介绍!如下图
在这里插入图片描述
2.添加自动布局:同时选中图片加文本,快捷键Shift + A添加自动布局
3.间距调整:在"Auto layout"下调整自动布局画框中的元素的间距(可以直接写数值),也可以进行拖拽调整大小
在遍这里插入图片描述
4.嵌套的自动布局:如果元素之间的间距不相等,即可添加嵌套的自动布局,比如选择产品名称和价格,使用快捷键Shift + A给两者单独添加自动布局,然后再来调整他们之间的间距(如下图所示,左边的图层显示Frame1和Frame2 两个自动布局,想要对哪个图层进行操作,点击后在进行操作即可)
在这里插入图片描述
【补充布局操作介绍】1.W表示宽度H表示高度,均可选择“ Fixed width(固定)”以及“Hug contents(随内容进行变化)”,这里卡片选择固定宽度;2.3个箭头用来设置自动布局中元素的排列方向(纵向排列、横向排列、自动换行);3.对其方式;4.边距;5.定义4个不同的边距(或者在画板上把鼠标放置卡片,当出现阴影所示即可继续宁拖拽调整)在这里插入图片描述
5.添加背景颜色:“Fill”中进行背景的填充

在这里插入图片描述

6.添加收藏图标:在卡片的右上角放置收藏图标,将其直接拖拽到卡片中,此时位置居中(前面设置过),如果想要自由调整自动布局中某一元素的位置,直接选中该元素,点击右侧菜单栏中的“Position”旁的图标“lynore auto layout”即对该元素忽略自动布局,之后即可拖拽调整相应的位置在这里插入图片描述

7.卡片横向排列:全选卡片,添加自动布局Shift + A->Auto layout下“->”图标->间距数值调整,如果希望在交互原型中实现横向滑动的效果,需要将自动布局的画框进行拉回,如下,因为只有内容超过画框范围,才能实现横向滑动;如果希望在轮番中在添加一个卡片,只要点击其中一个元素,Command + D(MAC)/Ctrl + D(Windows)即可复制选中的卡片
在这里插入图片描述
【插入图片操作介绍】Fill下的图标->Custom下的图片选择Upload from computer进行插入图片的选择。
在这里插入图片描述
在这里插入图片描述
8.卡片表头:两个元素-文字和箭头按钮,选中两个元素Shift + A添加自动布局,随后进行边距的设置,为了凸显背景图片,间距设置如下,图片插入如上面所述,实际的手机页面宽度可能会变化,这个卡片的宽度也会随之变化,如果希望文字和按钮两个元素始终各自靠两边对齐,而不是固定宽度,需将数值改为Auto,这样的结果就是无论宽度怎么更改,两个元素均在两侧,整体效果如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.将页面的其他部分均放到屏幕内
在这里插入图片描述
Shift + A添加自动布局,然后调整他们的间距
在这里插入图片描述
页面添加自动布局的好处就是当需要一个新的模块时,可以直接添加进来,页面各间距保持原有的且不用手动调整如下图所示
在这里插入图片描述
如果想要页面实现响应,可删除最外侧的手机屏幕画框,直接以自动布局作为页面(屏幕),填充白色,调整边距,勾选Clip content(裁剪内容)隐藏超出屏幕之外的内容,然后依次选中每一部分,右侧进行宽度(Fill container填充容器)即可实现响应,然后继续宽度(Add min width),设置最小尺寸320,再次点击Add max width设置最大尺寸480,这样屏幕尺寸即可限定在固定范围内
在这里插入图片描述

功能快捷键

操作MacWondows
添加自动布局Shift + AShift + A
AI自动布局Ctrl +Shift + ACtrl +Alt +Shift + A
取消自动布局Option +Shift + AAlt +Shift + A
(在画板上)调整所有边距Option +Shift鼠标点击拖拽边距Option +Shift鼠标点击拖拽边距

持续记录中~~~~~~~~~~~~

### 图书馆座位管理系统的微信小程序示例代码 为了展示如何创建一个简单的图书馆座位管理系统的小程序,下面提供了一个简化版的代码结构和部分核心逻辑。 #### 小程序目录结构 ```plaintext ├── app.js ├── app.json ├── app.wxss ├── pages/ │ ├── index/ │ │ ├── index.js │ │ ├── index.wxml │ │ └── index.wxss │ ├── seatReservation/ │ ├── seatReservation.js │ ├── seatReservation.wxml │ └── seatReservation.wxss └── utils/ └── util.js ``` #### `app.js` 文件配置全局变量和服务初始化 ```javascript App({ onLaunch() { console.log('Library Seat Management System Launched'); }, globalData: { baseUrl: 'https://example.com/api', } }) ``` #### 页面:主页 (`index/index.js`) 负责显示欢迎界面并导航到其他页面。 ```javascript Page({ data: {}, onLoad() { wx.setNavigationBarTitle({ title: "图书馆座位管理系统" }); }, goToSeatReservation() { wx.navigateTo({ url: '../seatReservation/seatReservation' }) } }); ``` #### 主页视图 (`index/index.wxml`) 定义了基本布局,并设置按钮用于跳转至预约页面。 ```html <view class="container"> <button bindtap="goToSeatReservation">进入座位预约</button> </view> ``` #### 座位预约页面 (`seatReservation/seatReservation.js`) 此文件处理具体的座位查询与预订操作。 ```javascript const app = getApp(); Page({ data: { seats: [] }, onLoad() { this.fetchSeats(); }, fetchSeats() { const that = this; wx.request({ url: `${app.globalData.baseUrl}/seats`, method: 'GET', success(res) { if (res.statusCode === 200) { that.setData({ seats: res.data.seats }); } else { console.error("Failed to load seats"); } } }); }, reserveSeat(e) { let id = e.currentTarget.dataset.id; wx.showModal({ content: '确认要预定该位置吗?', confirmText: '确定', cancelText: '取消', success(modalRes) { if (modalRes.confirm) { // 发送请求完成预约... console.log(`User reserved seat with ID ${id}`); } } }); } }); ``` #### 预约页面视图 (`seatReservation/seatReservation.wxml`) 展示了可用座位列表,并允许用户点击来选择特定座位进行预约。 ```html <view class="container"> <block wx:for="{{seats}}" wx:key="uniqueId"> <view class="seat-item" data-id="{{item.id}}" catchtap="reserveSeat">{{ item.name }} - {{ item.status }}</view> </block> </view> ``` 上述代码片段仅作为概念验证用途[^1]。实际开发过程中还需要考虑安全性、用户体验优化等方面因素。此外,在真实环境中应当遵循最佳实践指南来进行API调用和其他交互设计[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值