【问题标题】:Trying to make a gradient but it comes out white? What's wrong with my code?试图做一个渐变,但它出来是白色的?我的代码有什么问题?
【发布时间】:2021-03-23 13:27:41
【问题描述】:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build (BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Container(
          decoration: BoxDecoration(
            gradient: LinearGradient(
              colors: [const Color(0x50658C), const Color(0x2D4067)],
              begin: FractionalOffset.topCenter,
              end: FractionalOffset.bottomCenter,
              stops: [0.0,1.0],
                tileMode: TileMode.clamp
            ),
          ),
        ),
      ),
    );
  }
}

关注了这个 2 分钟的视频https://www.youtube.com/watch?v=AFiQsM0gojU&ab_channel=ProGrammer

【问题讨论】:

    标签: flutter dart gradient


    【解决方案1】:

    你必须在你的十六进制颜色前面加上OxFF,你只用Ox做前缀。我以您的代码为例提供了一个演示。我只是在十六进制颜色前面加上0xFF

    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
    
      @override
      Widget build (BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            body: Container(
              decoration: BoxDecoration(
                gradient: LinearGradient(
                  colors: [const Color(0xFF50658C), const Color(0xFF2D4067)], // adjust hex colors
                  begin: FractionalOffset.topCenter,
                  end: FractionalOffset.bottomCenter,
                  stops: [0.0,1.0],
                    tileMode: TileMode.clamp
                ),
              ),
            ),
          ),
        );
      }
    }
    

    【讨论】:

      【解决方案2】:

      您将 Color 值作为十六进制代码传递,但我猜您错过了 Flutter 接受十六进制代码作为 Color(0x-opacity-red-green-blue) 连字符只是为了提高可读性。因此,如果你想给它一个红色,即 0xff0000,那么你需要将它作为 0xffff0000 传递。请注意,0x 之后的前 2 个位置表示不透明度值。所以现在您的代码如下所示:

      import 'package:flutter/material.dart';
      
      void main() => runApp(MyApp());
      
      class MyApp extends StatelessWidget {
      
        @override
        Widget build (BuildContext context) {
          return MaterialApp(
            home: Scaffold(
              body: Container(
                decoration: BoxDecoration(
                  gradient: LinearGradient(
                    colors: [const Color(0xFF50658C), const Color(0xFF2D4067)],
                    begin: FractionalOffset.topCenter,
                    end: FractionalOffset.bottomCenter,
                    stops: [0.0,1.0],
                      tileMode: TileMode.clamp
                  ),
                ),
              ),
            ),
          );
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-17
        • 2022-08-08
        • 2022-11-17
        • 2020-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多