[Flutter]Containerの枠線を曲線にするには?

Flutter

どうも、ちょげ(@chogetarou)です。

Containerの枠線を曲線にする方法を紹介します。

スポンサーリンク

方法

Containerの枠線を曲線にするには、CustomClipperとClipRectを使います。

まず、CustomClipperを用意します。

class CurveClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    //切り取り方の設定。ここを曲線にする
    Path path = Path()
      ..addOval(
        Rect.fromLTWH(
          0,
          0,
          size.width,
          size.height,
        ),
      );

    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}

getClipメソッド内で、Pathを使って曲線で切り取るように設定します。

次に、ContainerをClipPathのchildに指定します。

そして、ClipPathの引数「clipper」に用意したCustomClipperを指定します。

ClipPath(
  clipper: CurveClipper(),
  child: Container(
    color: Colors.red,
    height: 200.0,
    width: 300,
  ),
)

まとめ

Containerの枠線を曲線にするには、CustomeClipperで曲線のPathを指定し、ClipPathでContainerを切り抜きます。

コメント

タイトルとURLをコピーしました