#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. Контейнер может иметь нулевое значение .