为了实现颜色选择器,我想绘制一个内部带有颜色渐变的矩形。我尝试使用带有DecoratedBox的容器,但效果不佳,因为我必须给它一个宽度,我希望它填充其父对象。
在抖动中绘制渐变的最佳方法是什么?

最佳答案

听起来您已经知道如何绘制渐变,而您的问题更多地是关于如何使DecoratedBox尽可能大。

如果您的DecoratedBox出现在ColumnRow中,请考虑将其包装在 Expanded 中,并将 crossAxisAlignment 设置为 CrossAxisAlignment.stretch

如果您的DecoratedBox是未为其子项提供大小的小部件的子项(例如 Center ),请尝试将其包装在ConstrainedBox constraints new BoxConstraints.expand() 中。这是一个例子:

dart - 在屏幕上绘制渐变-LMLPHP

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Gradient Example',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Gradient Example'),
      ),
      body: new Center(
        child: new ConstrainedBox(
          constraints: new BoxConstraints.expand(),
          child: new DecoratedBox(
            decoration: new BoxDecoration(
              gradient: new LinearGradient(
                colors: <Color>[Colors.red, Colors.blue]
              ),
            ),
          ),
        ),
      ),
    );
  }
}

10-08 06:47