Flutter 编写一个左边圆形右边矩形的shape样式

本文介绍如何在Flutter中使用ClipRRect组件创建左边圆形右边矩形的独特形状。通过设置borderRadius属性,实现圆角过渡效果,并展示了按钮组件的应用实例。

Flutter 编写一个左边圆形右边矩形的shape样式

这里使用到了ClipRRect的组件

ClipRRect(
              borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(100),
                  bottomLeft: Radius.circular(100)),
              clipBehavior: Clip.hardEdge,
              child: RaisedButton(
                onPressed: () {
                  Scaffold.of(context).showSnackBar(SnackBar(
                    content: Text("adsasd"),
                  ));
                },
                child: Text("这是内容"),
              ),

效果图

效果图

Flutter 中,我们可以使用 `Draggable` 和 `CircleAvatar` 或者自定义一个带有 `GestureDetector` 的 CustomPaint 组件来创建可拖动的圆形进度条。下面是一个使用 `Draggable` 和 `CircleAvatar` 的简单示例: ```dart import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; // 导入 CustomPaint class draggableCircularProgress extends StatefulWidget { @override _draggableCircularProgressState createState() => _draggableCircularProgressState(); } class _draggableCircularProgressState extends State<draggableCircularProgress> { double progress = 0; Offset position; @override Widget build(BuildContext context) { return GestureDetector( onPanUpdate: (DragUpdateDetails details) { setState(() { position = details.globalPosition; }); }, child: Draggable( feedback: Container(color: Colors.grey.withOpacity(0.2)), child: Stack( children: [ CircleAvatar( radius: 40, color: Colors.blue, child: Center(child: Text("$progress%")), ), Container( height: 40, width: 40, decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.white, ), child: Center( child: Transform.translate( offset: position - Offset.zero, child: Container( width: 40, height: 40, decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all(width: 2, color: Colors.black), ), ), ), ), ), ], ), ), ); } } ``` 在这个示例中,我们创建了一个圆形的 `CircleAvatar`,并在其上添加了一个可拖动的小圈作为进度指示。当手指在屏幕上移动时,`onPanUpdate` 函数会被触发,更新 `position`,进而带动小圈的位置变化,模拟进度条的滑动。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值