flutter - OnPressed 对字体颜色的影响
问题描述
我正在制作简单的自定义文本按钮
SizedBox(
height: 40,
child: Material(
color: Colors.transparent,
child: InkWell(
onTap: (){},
splashColor: Colors.black12,
child: Center(
child: Text(
'Done',
style: TextStyle(
fontSize: 18, color: Colors.white, fontWeight: FontWeight.w500),
),
),
),
),
)
现在这很好用,但是对 onTap 事件的影响是围绕文本
如何使该效果仅出现在文本字体上,或者如果不可能,请在点击时更改文本的颜色并在发布时将其更改回
解决方案
要在按下时更改文本的颜色,可以使用onHighlightChanged
InkWell 的事件处理程序。
在你的类中声明一个颜色属性:
Color textColor = Colors.white;
并更改您的 InkWell 实施:
InkWell(
onTap: () {},
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
onHighlightChanged: (value) {
setState(() {
textColor = value ? Colors.white70 : Colors.white;
});
},
child: Center(
child: Text(
Done',
style: TextStyle(
fontSize: 18,
color: textColor,
fontWeight: FontWeight.w500
),
),
),
)
笔记:
- 您必须将其设置
splashColor
为透明 - 您必须将其设置
highlightColor
为透明
推荐阅读
- html - HTML解析和Dom树构建
- mongodb - pyspark 中的 mongo 查询以提取大于某个日期的数据,该日期是字符串 ISODate 格式
- python - 用于提取节号和描述的正则表达式
- c++ - 在 C++ 中隐藏第 3 方库中的回调原型
- android - Android 工作室 java - Toast
- c++ - 在 C++ 中为 2 个字符串实现通用字符计数,但在 2 个字符串上的相同 for 循环中接收到截然不同的字符计数
- flutter - 如何在颤动的不同点击中路由到相同的页面但具有不同的功能?
- python - 在将用户输入转换为适合密码后移动字母
- android - 如何使用 InputField 小部件将“.com”按钮添加到键盘
- c++ - 从 Visual Studio 2017 迁移到 2019,/MP 标志出现问题并实现 32 位构建?