пользовательский виджет flutter не показывает детей

#flutter #widget

Вопрос:

Я следую устаревшему учебнику по созданию пользовательского виджета, но до сих пор не могу сделать его видимым внутри пользовательского виджета: ничто, размещенное внутри дочерних элементов RusableCard, не отображается в приложении. Что я могу сделать?

 ....

                  child: ReusableCard(
                    color: activeCardColor,
                    cardChild: Column(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        FaIcon(FontAwesomeIcons.search, size: 80),                       
                        SizedBox(height: 15),
                        Text(
                          'MALE',
                          style: TextStyle(
                            fontSize: 80.0,
                            color: Color(0xFF8D8E96),
                      
                ...

class ReusableCard extends StatelessWidget {
  ReusableCard({
    required this.color,
    this.cardChild,
  });

  final Color color;
  final Widget? cardChild;

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.all(15),
      decoration: BoxDecoration(
        color: color,
        borderRadius: BorderRadius.circular(10),
      ),
    );
  }
}
 

Ответ №1:

Вы упускаете Container ребенка ReusableCard . Вызовите ребенка в контейнере. убедитесь, что обработано значение null.

 class ReusableCard extends StatelessWidget {
  ReusableCard({
    required this.color,
    this.cardChild,
  });

  final Color color;
  final Widget? cardChild;

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.all(15),
      decoration: BoxDecoration(
        color: color,
        borderRadius: BorderRadius.circular(10),
      ),
     child:cardChild!=null? cardChild: null,// handle here 
    );
  }
}
 

Комментарии:

1. Контейнер может иметь нулевое значение .