【发布时间】:2019-11-13 03:52:26
【问题描述】:
上下文:我正在用 Flutter 重写我的 Android 应用程序。在 Android 上,将可点击的View 的background 属性设置为?android:selectableItemBackgroundBorderless 时,出现了这种有趣的触摸反馈效果:
请注意,红色边框不在真实 UI 中,它只是为了显示 View 的边框。如您所见,墨迹在矩形视图周围形成了一个圆圈,即circumscribed。
我希望我的 Flutter 应用程序中的墨迹也被限制在视图周围,即 选择区域需要是圆形并包含视图。我试图通过使用来实现这一点InkResponse 组件,但结果看起来很惨:
示例中使用的Scaffold 的正文:
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Material(
color: Color(0xff008080),
child: Center(
child: InkResponse(
onTap: () {
/* ... */
},
child: Container(
child: Center(
child: Text('BUTTON'),
),
decoration: BoxDecoration(
border: Border.all(color: Colors.red),
),
width: 200.0,
height: 200.0,
),
highlightColor: Colors.transparent,
),
),
),
),
如果我使InkResponse 的radius 属性足够大,它可以超出视图的范围,如果我的视图具有静态大小,我可以调整属性以达到预期的效果,但在我的真实应用它是动态的。
是否可以在不制作自定义组件的情况下做到这一点?
【问题讨论】:
-
您找到解决方案了吗?有什么方法可以让涟漪效果超出小部件渲染框?
标签: android android-layout flutter material-design flutter-layout