Не могу центрировать мои виджеты в контейнере, используя флаттер Column()
На этом фото мой шаг 1
И когда я использую Column(), мой дизайн не является центром :( Смотрите -> шаг 2
также я не могу нажать на него, когда я обернул Column(), и я не вижу ошибок:
Expanded(
child: Padding(
padding: const EdgeInsets.all(10),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: colorMars,
),
height: 200,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
icon: const FaIcon(
FontAwesomeIcons.mars,
size: 80,
),
onPressed: () {
colorMars = active;
if (colorMars == active) {
colorVenus = inActive;
} else {
colorMars = inActive;
}
setState(() {});
}),
],
),
),
),
),
PS Для иконок использую этот пакет font_awesome_flutter в pubspec.yaml:
dependencies:
flutter:
sdk: flutter
font_awesome_flutter: ^10.1.0
Полный код здесь -> full_code
1 ответ
Добавлять
iconSize: 80
в твоей . И полный код будет
Expanded(
child: Padding(
padding: const EdgeInsets.all(10),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: colorMars,
),
height: 200,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
iconSize: 80,
icon: const FaIcon(
FontAwesomeIcons.mars,
),
onPressed: () {
colorMars = active;
if (colorMars == active) {
colorVenus = inActive;
} else {
colorMars = inActive;
}
setState(() {});
}),
],
),
),
),
),
На основе документации
При создании кнопки со значком со значком не переопределяйте размер значка параметром Icon.size, вместо этого используйте параметр iconSize кнопки значка. Например, сделайте это:
IconButton(iconSize: 72, icon: Icon(Icons.favorite), ...)
Избегайте этого:
IconButton(icon: Icon(Icons.favorite, size: 72), ...)
Если вы это сделаете, размер кнопки будет основан на размере значка по умолчанию, а не на 72, что может привести к неожиданным макетам и проблемам с обрезкой.
Если вы замените размер 80 без добавления размера,
FaIcon
будет больше, чем его родитель (
IconButton
) и вы получите неожиданный макет.