首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >名称与自定义小部件之间的冲突

名称与自定义小部件之间的冲突
EN

Stack Overflow用户
提问于 2021-04-09 10:27:17
回答 2查看 722关注 0票数 0

什么是使自定义小部件不与材料包导出的小部件冲突的最佳方法?具体来说:我正在尝试开发一个基于原子设计的设计系统。所以,假设我想要我自己的TextCard小部件。我不能将它们命名为TextCard,因为它们都是由材料包导出的。

我已经考虑过的一些选择:

  1. 创建一个ui 库并使用 as导入的
代码语言:javascript
运行
AI代码解释
复制
// components/atoms/Text.dart
import "package:flutter/material.dart" hide Text;
import "package:flutter/material.dart" as material show Text;

class Text extends StatelessWidget {
  Text(String content);

  Widget build(BuildContext context) {
    // Imagine some more complicated styling specific to my design system
    return material.Text(content);
  }
}
代码语言:javascript
运行
AI代码解释
复制
// components/ui.dart
library ui

export "package:my_app/components/atoms/Text";
代码语言:javascript
运行
AI代码解释
复制
// screens/HomeScreen.dart

import "package:flutter/material.dart";
import "package:my_app/components/ui" as ui;

class HomeScreen extends StatelessWidget {
  Widget build(BuildContext context) {
    // Example usage
    return ui.Text(content);
  }
}

感觉不太好..。首先,每当我导入as库时,我都需要记住包括ui,其次,在Text实现中使用hideshow类有点烦人。

  1. hide 冲突类
代码语言:javascript
运行
AI代码解释
复制
// screens/HomeScreen.dart

import "package:flutter/material.dart" hide Text;
import "package:my_app/components/Text";

class HomeScreen extends StatelessWidget {
  Widget build(BuildContext context) {
    // Example usage
    return Text(content);
  }
}

类似于选项(1),我不想记住与我的自定义小部件冲突的所有类hide

  1. 只使用不同的名称

也许是AppTextThemeTextUITextAtomText?这感觉也不太好,特别是对于其他一些小部件,比如IconButton

围绕这件事有什么约定吗,或者有什么像样的解决办法?我还没有看到任何定制的UI库,但是对于那些希望在应用程序之间重用小部件并保持一致风格的团队来说,这是非常有用的。

EN

回答 2

Stack Overflow用户

发布于 2021-04-09 10:48:33

据我所知,您希望您的自定义文本类与普通文本小部件完全相同,但使用不同的设计。如果确实如此,我建议您更改项目的ThemeData。MaterialApp小部件接受一个主题参数,因此您可以在其中对TextTheme、CardTheme、IconButtonTheme等进行样式设置。这将防止任何命名冲突,节省大量编码,并使其易于调整。

像TextTheme这样的东西允许使用不同类型的样式,如标题、正文等,就像这里描述的那样。

票数 0
EN

Stack Overflow用户

发布于 2021-04-09 11:24:24

  1. 您可以在小部件的开头添加“My”,例如,“MyText”代替“Text”,“MyCard”代替“Card”。
  2. 你可以用一种棘手的方法,在我的例子中,我用一个故意错误的口述来命名。例如,您可以将“购物车”命名为“购物车”,也可以将其命名为“文本”,而不是“卡片”,而是可以命名tekst。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67026502

复制
相关文章
解决Chrome 浏览器翻译提示错误:无法翻译此页面问题
由于谷歌停止了中国大陆的翻译服务,导致Chrome浏览器无法使用自带全文翻译功能,点击翻译会出现:
用户4623659
2023/03/21
2K0
解决Chrome 浏览器翻译提示错误:无法翻译此页面问题
无法安装此app,因为无法验证其完整性 ,解决方案
最近有很多兄弟萌跟我反应“无法安装此app,因为无法验证其完整性 ”,看来这个问题无法避免了,今天统一回复下,出现提示主要有以下几种可能
爱学iOS的小麦子
2023/06/30
7.8K0
Firebase 如何创建登录 Token
Firebase 的 token 可以使用 firebase 命令行工具来进行创建。
HoneyMoose
2021/04/02
2.5K0
Firebase 如何创建登录 Token
【错误记录】Android 应用连接 BLE 设备无法读取数据 ( 可以写出数据 | 无法读取数据 )
发送数据成功 : Android 应用 向 BLE 硬件设备发送数据 , 成功 ;
韩曙亮
2023/03/28
1.6K0
visual studio 2019出现无法登录 无法刷新此用户凭证解决方式
我这里是已经解决好后的了,首先出现那个过了试用期30天然后阻止你再用的时候,看了好多解决方式,有什么换网络我试了没有什么用,最起码在我电脑上没有用,后面又说在下载那边启用然后快速的找到“帮助”“发送反馈“”报告问题”,就会有登录自己的账号,没有的话就得去注册一下了,这个方式顺过来解决了问题。
meihuasheng
2021/03/18
2.5K0
错误代码502,网页无法打开?教你如何解决!
在使用互联网的过程中,我们时常会遇到各种错误代码,其中502错误代码是最为常见的一种。502 Bad Gateway错误表示,网关或代理服务无法将请求发送到上游服务器。那么,错误代码502是什么意思?
德迅云安全--陈琦琦
2023/10/08
10.1K0
Pages 无法使用此AppleID更新
无法更新是因为这个应用并没有绑定到已经登录的AppleID中,点击已购,会提示有应用需要接受,点击全部接受。输入几次密码之后再次更新就ok了、
obaby
2023/02/23
1K0
Google 的 Firebase 如何删除项目
https://www.ossez.com/t/google-firebase/13792
HoneyMoose
2021/11/02
3.2K0
Google 的 Firebase 如何删除项目
opencv无法读取图片_opencv无法读取图片
使用一下代码读取一张图片失败(不管是绝对路径还是相对路径,都失败),工程运行都没问题,就是图片读取失败。
全栈程序员站长
2022/11/04
2.4K0
解决 无法读取到 /data/data/yourPackageName/files/coverage.ec 文件
参考 https://testerhome.com/topics/8554 这篇文章
全栈程序员站长
2022/09/13
1K0
pandas文件读取错误及解决办法
错误一:‘gbk’ codec can’t decode byte 0x98 in position 2: illegal multibyte sequence
诡途
2022/05/09
1.3K0
firebase怎么用_firebase是什么
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168361.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/20
4.2K0
firebase怎么用_firebase是什么
Windows IIS注册asp 此操作系统版本不支持此选项 错误解决方法
更新Win10,原来的IIS站点访问不了,原因是因为IIS 没有.net 4.5,使用网上的aspnet_regiis.exe -i命令,一点都不靠谱,直接提示:
庞小明
2018/12/24
4.4K0
Cornerstone3无法读取 log 的解决办法
但是这一篇文章并没有解决好我的问题,问题依旧,最后发现自从 Cornerstone3之后就换了标识符,就起不到效果。
君赏
2018/08/31
2K0
Cornerstone3无法读取 log 的解决办法
Mac无法读取硬盘
问题描述: 由于没有弹出移动硬盘,就拔出来了。导致再插入硬盘,电脑也无法识别了。 步骤: 1.查看一下硬盘信息 画圈的就是我的硬盘。 2.将这个硬盘挂载 sudo diskutil mount /dev/disk2s1 然后需要输入的就是你的密码(开机密码) 可以看到,已经挂载成功了。
用户4793865
2023/01/12
1.1K0
dz2.5 后台空白 登陆等到处提示内部错误,无法显示此内容
源出于对一个垃圾站的搬家,直接搬了文件和数据库,结果出现标题的错误,经过几天的百度等。 找到了答案: 就是这个 congig_global.php 看看最下面有没有多余的行数。删除多余的行数。 —————————————————————————————————————————————————————————————————————————————————— 详细解释: 1。提示内部错误的时候,大家就可以安心了,因为一般都是xml格式的问题,稍微调试一下就好了 对方修改了config文件,导致出现问题,并声
用户1272546
2018/06/05
8720
dz2.5 后台空白 登陆等到处提示内部错误,无法显示此内容
源出于对一个垃圾站的搬家,直接搬了文件和数据库,结果出现标题的错误,经过几天的百度等。
用户1191760
2019/02/27
1K0
SUMMARIZE函数解决之前的总计错误
这些都是之前的文件,这里拿出来是为了方便小伙伴们观看对比使用的。先来说一下什么意思:
PowerBI丨白茶
2021/09/02
7870
SUMMARIZE函数解决之前的总计错误
点击加载更多

相似问题

用于Firebase类型错误的云函数-无法读取属性

20

无法解决此错误。Kotlin -Firebase

25

Firebase实时云函数-无法读取空快照的属性

152

firebase云函数无法读取未定义的属性“ref”

20

Firebase云函数无法读取未定义的属性“”displayName“”

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文