clip_rrect.1.dart 1.68 KB
Newer Older
1 2 3 4 5 6
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';

7 8
/// Flutter code sample for [ClipRRect].

9 10 11
void main() => runApp(const ClipRRectApp());

class ClipRRectApp extends StatelessWidget {
12
  const ClipRRectApp({super.key});
13 14 15 16 17 18 19 20 21 22 23 24 25

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('ClipRRect Sample')),
        body: const ClipRRectExample(),
      ),
    );
  }
}

class ClipRRectExample extends StatelessWidget {
26
  const ClipRRectExample({super.key});
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: const EdgeInsets.all(40.0),
      constraints: const BoxConstraints.expand(),
      // Add a FittedBox to make ClipRRect sized accordingly to the image it contains
      child: FittedBox(
        child: ClipRRect(
          borderRadius: BorderRadius.circular(40.0),
          child: const _FakedImage(),
        ),
      ),
    );
  }
}

// A widget exposing the FlutterLogo as a 400x400 image.
//
// It can be replaced by a NetworkImage if internet connection is available, e.g. :
// const Image(
//   image: NetworkImage(
//       'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg'),
// );
class _FakedImage extends StatelessWidget {
52
  const _FakedImage();
53 54 55 56 57 58 59 60 61 62 63

  @override
  Widget build(BuildContext context) {
    return Container(
      // Set constraints as if it were a 400x400 image
      constraints: BoxConstraints.tight(const Size(400, 400)),
      color: Colors.blueGrey,
      child: const FlutterLogo(),
    );
  }
}