• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

null 관련 오류

22.12.11 15:57 작성 조회수 182

0

스크린샷 2022-12-08 오후 9.57.32.png-

현재 AnimatedContainer 위젯 안에서 color를 null로 주고 decoration 안에 컬러 변수값을 넣었을 때 이러한 오류가 나타납니다. 어떻게 해결할 수 있나요?

답변 1

답변을 작성해보세요.

0

에러의 원인이 다른 곳에 있는 것 같습니다.

전체 코드를 올려주시면 확인해 보겠습니다.

lynn1602님의 프로필

lynn1602

질문자

2022.12.11

min.dart코드와 AnimatedContainer.dart 코드입니다.


import 'package:flutter/material.dart';
import 'src/MyAnimatedContainer.dart';

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

class MyApp extends StatelessWidget {


  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, //우측 상단 debug 제거

      title: 'Flutter Demo',
      theme: ThemeData(
        primaryColor: Colors.black,
      ),

      home: MyHomePage(),

    );
  }
}

class MyHomePage extends StatefulWidget {
  // const MyHomePage({Key? key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context)=> MyAnimatedContainer())),
        child: Text("run animated Container"),
      ),
    );
  }
}
lynn1602님의 프로필

lynn1602

질문자

2022.12.11

import 'dart:math';

import 'package:flutter/material.dart';

class MyAnimatedContainer extends StatefulWidget {


  @override
  _MyAnimatedContainerState createState() => _MyAnimatedContainerState();
}

class _MyAnimatedContainerState extends State<MyAnimatedContainer> {
  double _width = 50;
  double _height = 50;
  Color _color = Colors.teal;
  BorderRadius _borderRadius = BorderRadius.circular(8);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AnimatedContainer'),
      ),
      body: Center(
        child: AnimatedContainer(
          width: _width,
          height: _height,
          color: _color,  
          decoration: BoxDecoration(
            borderRadius: _borderRadius,
            color: _color
          ),
          duration: Duration(seconds: 1),  
          curve: Curves.fastOutSlowIn,
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: (){
          setState(() {
            final random = Random();
            _width= random.nextInt(300).toDouble();
            _height= random.nextInt(300).toDouble();
            _color = Color.fromRGBO(random.nextInt(256), random.nextInt(256), random.nextInt(256), 1);
            _borderRadius = BorderRadius.circular(random.nextInt(100).toDouble());
          });
        },
        child: Icon(Icons.play_arrow),
      ),
    );
  }
}

보내 주신 코드에는 AnimatedContainer 의 color 속성이 null 이 아닙니다.

decoration 에서 color 속성을 사용하면 AnimatedContainer의 color 속성은 제거해야 합니다.

잘 되는 것 확인했습니다.

그리고 보내주신 코드로는 위에서 말씀해 주신 에러는 재현되지 않네요.