因为 InkWell 继承自 InkResponse,因此这里只以 InkResponse 来进行分析。
第一种方法:
在 InkResponse 外围添加 Container,然后在 Container 中添加 color 属性,例子如下:
return Scaffold(
appBar: AppBar(
title: Text("title"),
),
body: Container(
child: InkResponse(
child: Padding(
padding: EdgeInsets.all(20),
child: Text("click me",style: TextStyle(color: Colors.black),),
),
onTap: () {
print("object");
},
),
color: Colors.red,
),
);
第二种方法:
设置 InkResponse 的 highlightColor 为透明,同时设置 radius 为 0,代码如下:
return Scaffold(
appBar: AppBar(
title: Text("title"),
),
body: InkResponse(
highlightColor: Colors.transparent,
radius: 0.0,
child: Padding(
padding: EdgeInsets.all(20),
child: Text(
"click me",
style: TextStyle(color: Colors.black),
),
),
onTap: () {
print("object");
},
),
);
第一种方法会增加 widget 的一层包装,且如果层级较深可能有问题,推荐大家尝试第二种方式来进行处理。
InkResponse颜色定制技巧
本文介绍了两种在Flutter中自定义InkResponse组件颜色的方法。第一种是在InkResponse外包裹Container并设置color属性;第二种是直接修改InkResponse的highlightColor属性为透明,并将radius设为0。推荐使用第二种方法,避免层级过深的问题。
4653

被折叠的 条评论
为什么被折叠?



