flutter 点九设置

2023-10-29

1.上边和左边是拉伸区域,右边和下边是填充区域
2.fromLTRB/fromLTWH设置区域
3.fromLTRB设置区域,说的不是很清晰
4.centerSlice的理解

拉伸区域:可以单纯的理解为对某块像素进行拉伸,那块像素自然就变得很大了,为满足内容需要的空间,就会不断拉伸那一块地方,让内容放得下
内容填充区域:即内容可以显示的地方

本文地址:https://blog.csdn.net/qq_40785165/article/details/120116188,转载需附上此链接

学而不化,非学也。

大家好,我是小黑,一个还没秃头的程序员~~~

最近想做一个Flutter版的简易聊天交友软件,可以当成是自己的Flutter实战经验,说到聊天软件肯定涉及聊天气泡,原生中的气泡背景一般都直接使用.9图,那么Flutter中如何实现缩放背景呢,这就是这次要介绍的centerSlice组件了,效果如下:

以下是我找的背景(113x48)
 
话不多说直接上代码:

        ConstrainedBox(
          //没有下面的最小高度的话,当只有一行文字的时候.9图片无法显示
          constraints: BoxConstraints(minHeight: 50),
          child: Container(
              margin: EdgeInsets.fromLTRB(0, 10, 0, 0),
              padding: EdgeInsets.fromLTRB(20, 10, 20, 10),
              decoration: BoxDecoration(
                  image: DecorationImage(
                centerSlice: Rect.fromLTRB(20, 20, 38, 38),
                image: AssetImage(
                  'assets/images/bg_message_right.png',
                ),
              )),
              child: ConstrainedBox(
                constraints: BoxConstraints(maxWidth: 200),
                child: Text(
                  "${messageBeanData.messageContent}",
                ),
              )),
        )
注意:

这里的气泡背景是作为Container的背景展示的,在Container外层需要再套一层ConstrainedBox,并设置最小高度minHeight,否则当当只有一行文字的时候背景图片无法显示,并报以下错误:
centerSlice was used with a BoxFit that does not guarantee that the image is fully visible
Failed assertion: line 465 pos 12: 'sourceSize == inputSize'
可以使用fromLTRB/fromLTWH设置.9图片区域,计算方法不同而已
Rect.fromLTRB(this.left, this.top, this.right, this.bottom):四个参数即区域四个方向的长度,距离都是以原图左上角(00)作为原点进行相对计算的
Rect.fromLTWH(double left, double top, double width, double height):前两个参数代表.9图左上的点坐标,后面两个参数分别代表区域的宽和高,这样划分出来的区域即.9图的区域了

centerSlice: const Rect.fromLTRB(60, 27, 85, 53),
四个数值,就是伸缩区域的 top、left、right、button。
应该可以简单的理解:centerSlice是设置拉伸的区域 ,四个角就不会被拉伸了

还有一个关键的点,设置点九后不显示
在这里插入图片描述
我的理解是,你设置了中间的这个正方形拉伸区域,那你的内容,高度最起码要超过正方形的低边高度,可以设置最小高度,宽度最起码要超过正方形的右边宽度,也可以设置最小宽度,这时候才能正常拉伸。也就是说你的内容高度要大于35,内容宽度要大于35

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter 点九设置 的相关文章

  • v7 RecyclerView NullPointerException AccessibilityDelegateCompat.getBridge()

    运行我的 recyclerview 列表片段时出现此错误 java lang NullPointerException Attempt to invoke virtual method java lang Object android su
  • 使用 android AudioTrack 在左或右扬声器中播放声音

    我正在应用程序中的 AudioTrack 的帮助下播放声音 但我想在特定扬声器 耳朵中播放声音 即左扬声器或右扬声器或两个扬声器 以下代码是我用来播放声音的 private AudioTrack generateTone double fr
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 以编程方式更新 Android 中的联系人姓名和电话号码

    我创建一个应用程序来读取 更新 删除联系人详细信息 这是更新联系人姓名和电话号码的问题 有人可以帮助我吗 我该怎么做 我正在使用以下代码 但它不起作用 Override public View onCreateView LayoutInfl
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • 在 Jetpack Compose 中跨可组合函数重复使用一组预览注释

    在 Jetpack Compose 中迈出第一步 这非常令人惊奇 除了一个恼人的问题 我有一组固定的预览 正常 深色和 RTL Preview name Normal group Screen showBackground true Pre
  • 如何在进入新活动之前终止线程和处理程序

    大家好 在我尝试清理处理程序时 这段代码可能有点混乱 因为我一直在尝试追踪崩溃发生的位置 我有一个对话框活动 显示密码输入 进度条由线程和处理程序动画显示 似乎当我试图查看进度条是否完成并尝试终止线程时 当我尝试进入新活动时 我这样做的方式
  • 无法获取 Facebook 传入请求

    我正在尝试在我的 Facebook android 游戏应用程序中实现发送数据并接受该数据 我正在关注https developers facebook com docs android send requests notification
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • 为什么Android应用程序在发布到市场后尺寸会增加?

    我最近在 Android 市场上发布了我的应用程序 显示应用程序大小为 5 4MB 而实际 apk 大小为 2 8MB 为什么显示多出2MB 我应该如何限制我的应用程序大小 请帮我 您的应用程序大小会增加 因为您使用了复制保护选项ON在发布
  • BottomSheetDialog get Behavour 始终返回 null

    我与底部表单对话框我必须获得行为才能设置setBottomSheetCallback 来处理一些事情 As 谷歌说 https android developers googleblog com 2016 02 android suppor
  • Vimeo 视频在 Android 6 设备上停止播放

    我正在尝试在我的应用程序中播放 Vimeo 的视频 问题是在 Android 6 设备上 视频会在一定时间后停止播放 在 API 较低的设备上一切正常 时间取决于质量 对于下面提供的网址的视频 播放一定分钟 1 到 3 视频质量有多低 播放
  • Flutter:如何在flutter中指定设备id?

    如何在flutter run中选择设备id 请使用 d 标志指定设备 或使用 d all 对所有设备进行操作 iPhone 6 54XXXXXX35130ebefd38f ios iOS 10 3 3 iPhone 7 Plus BA8CX
  • onBackPressed 隐藏 不破坏 Activity

    我知道如何取消后退按键 以便活动 主窗口保持可见 public void onBackPressed return 我的目标是隐藏该活动 但是 在没有完成它的情况下 您如何在 onBackPressed 事件中做到这一点 即我想达到 onP
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示

随机推荐

  • 企业微信小程序一直在loading转圈

    企业小程序需要先注册企业微信并选定公司 否则在使用企业小程序模拟器插件时 会持续出现loading情况
  • python flask介绍

    python flask介绍 Flask是一个使用Python编写的轻量级Web应用框架 基于Werkzeug WSGI工具箱和Jinja2 模板引擎 Flask使用BSD授权 Flask也被称为 microframework 因为它使用简
  • 抓包工具大全整理

    一 使用Chrome的开发者工具 用Chrome捕获12306登录的POST请求 Chrome开发者工具在抓包时 如果页面发生了跳转 那么会把上一个页面的HTTP请求清空 此时需要选中Preserve log 以保留上次抓到的包 我们用Ch
  • react 字段值空判断_React原理解析第一篇:核心概念

    作为一个构建用户界面的库 React的核心始终围绕着更新这一个重要的目标 将更新和极致的用户体验结合起来是React团队一直在努力的事情 为什么React可以将用户体验做到这么好 我想这是基于以下两点原因 Fiber架构和Scheduler
  • IPv6扩展头部 (一) 扩展头部格式、类型与扩展选项

    之前几篇博客介绍了IPv6的扩展头部 包括分片头部和路由头部 接下来介绍一下IPv6扩展头部以及扩展选项的内容 可能会有这样的疑问 有了扩展头部怎么还需要扩展选项 扩展选项是干嘛用的 本篇博客就介绍相关内容 IPv6扩展头部 在IPv6中
  • SimpleDES

    转载 学习 http pigheadx me blog 2011 04 s desalgorithm 下面从准备知识开始 C 使用bitset数据结构进行与或位运算 1 置换 举例说明 对 ABCDEFGH 做一下 82641753 置换的
  • rt-thread stm32f407+lan8720 lwip应用

    硬件资源 正点原子stm32f407 探索者开发板 板载Lan8720以太网芯片 操作系统 rt thread 4 0 1 实验目的 1 实现ping功能 能够ping通外网 2 实现Telnet功能 能够使用类似于CRT这种工具进行远程连
  • 面向对象五大设计原则-开放封闭原则

    1 开放封闭原则 开放封闭原则 Close Open Principle 是指软件应该对扩展开放 而对修改封闭 在软件的生命周期内 需求变化是客观存在的且不以人的意志而转移 而对应的软件也必须做相应的变化 对扩展开放 意味着有新的需求或变化
  • 章鱼网络,构建未来Web3弹性之网

    全长8698字 预计阅读 23 分钟 嘉宾 刘毅 撰文 MiX 微信交流 mixcross919 章鱼网络的愿景 大幅降低Web3 0应用链 Appchain 的启动 运行和创新门槛 将启动应用链的成本从几百万美金降低到几万美金 只有把门槛
  • 感悟--学习一个新东西

    总结学习一个新东西 当学习更高的层次的东西 看原来之前学过的东西觉的不在难 最开始学习jsp标签 nginx 使用 原因是 没有站在高纬度视角 不知道我站在哪里 本以为是个大山 其实是就是山谷中一棵大树上的一片页里的细节脉络 以下按照顺序来
  • 端口被占用怎么解

    1 首先打开命令行窗口 在搜索栏输入cmd 选择命令提示 2 在命令提示窗口输入 netstat ano 找到端口对应的PID 我要找的是端口3000 所以对应PID就是29916 3 继续输入 netstat ano findstr PI
  • Python数据驱动ddt模块,与测试报告的生成

    数据驱动ddt模块 与测试报告的生成 与上一篇博客一样拿登录测试来讲 首先建立一个命名为login py的文件 并写上登录过程中需要调用的方法login check def login check username password par
  • Java中如何生成6个不重复的随机数一次性成功!

    在使用Java生成随机数时 这里有两种方式 是使用Set的不可重复性 来生成的 下面我们来看代码 public class RandomTest public static void main String args Set
  • 企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

    工程项目管理软件 工程项目管理系统 对建设工程项目管理组织建设 项目策划决策 规划设计 施工建设到竣工交付 总结评估 运维运营 全过程 全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一 系统管理 1 数据字典 实现对数据字典标签
  • 《面试准备》c/c++全排列问题

    问题描述 排列 从n个元素中任取m个元素 并按照一定的顺序进行排列 称为排列 全排列 当n m时 称为全排列 比如 集合 1 2 3 的全排列为 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 3 1 2 算法思路 1 n个元素
  • 扩展实体

    扩展实体对象Xrecord 它是AcDbxrecord的对象实例 扩展实体对象实际上是结果缓冲区列表 存储一个数据组列表 每一个节点都有一个DXF码来标示实体的类型 设置和获取结果缓冲区链表 Acad ErrorStatusAcDbXrec
  • 正态分布西格玛越大_正态分布中什么是1 sigma原则,2sigma原则,3sigma原则

    sigma原则 数值分布636f707962616964757a686964616f31333431366431在 中的概率为0 6526 2sigma原则 数值分布在 2 2 中的概率为0 9544 3sigma原则 数值分布在 3 3
  • Python3 AttributeError: module ‘cv2‘ has no attribute ‘SIFT‘ ‘module‘ object has no attribute ‘xfea

    在用python3使用sift cv2 SIFT 进行SIFT时候 可能会产生错误 AttributeError module cv2 has no attribute SIFT 解决 将sift cv2 SIFT 替换为 sift cv2
  • 2023前端面试题(含答案)

    set map区别 1 Map是键值对 Set是值的集合 2 Map可以通过get方法获取值 而set不能 因为它只有值 3 都能通过迭代器进行for of遍历 4 Set的值是唯一的可以做数组去重 Map由于没有格式限制 可以做数据存储
  • flutter 点九设置

    1 上边和左边是拉伸区域 右边和下边是填充区域 2 fromLTRB fromLTWH设置区域 3 fromLTRB设置区域 说的不是很清晰 4 centerSlice的理解 拉伸区域 可以单纯的理解为对某块像素进行拉伸 那块像素自然就变得