Как выровнять дочерний элемент FlatButton

Я пытаюсь выровнять 2 текста и изображение как дочерний элемент FlatButton (так), но почему-то элементы не выравниваются должным образом.

Я пытался использовать Stack, Align, Rows и т. д., но мне это не очень удалось (я также новичок, когда дело доходит до дротика или флаттера).

new ButtonTheme(
          minWidth: 171,
          height: 176,
          child:new Container(
                decoration: new BoxDecoration(
                borderRadius: new BorderRadius.circular(19),
                gradient: new LinearGradient(
                  begin: Alignment.centerLeft,
                  end: Alignment.centerRight,
                  colors: [
                    Color(0xFF8F94FB),
                    Color(0xFF5D62D4)
                  ]
                )
                ),
                child: FlatButton(
                  onPressed: () => handleButtonClick(),
                  shape: new RoundedRectangleBorder(
                    borderRadius: new BorderRadius.circular(19)
                  ),
                  child: new Stack(
                    children: <Widget>[
                      Align(
                        alignment: Alignment.bottomLeft,
                        child: Image.asset('assets/daily_icon.png', width: 109, height: 109),
                      )
                    ],
                  ),
                  ),
              ), 
          ),

Вот результат:Изображение

попробуйте добавить дополнение: const EdgetInset.all(0) к FlatButton

nick.tdr 28.05.2019 15:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
1 495
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете отлаживать шаг за шагом. Во-первых, это метод, который я использую со мной и другими моими коллегами-разработчиками. В дочернем параметре передайте Container, этот контейнер получит цвет, например Colors.red, с помощью которого вы можете увидеть, какой размер содержит область вашего контейнера.

После этого, если вы хотите централизовать содержимое внутри этого Container, передать Center как дочерний элемент и дочерний элемент этого виджета Center, вы можете передать свое изображение и определить размер этого изображения.

child: Container(
        color: Colors.red,
        child: Center(
          child: Image.asset('assets/daily_icon.png', width: 109, height: 109),
        ),
      ),

Скажите, сработало ли это для вас.

Спасибо. Эта техника с красным цветом бесценна!!

laaasBIGL 28.05.2019 15:09

Ха-ха, это мой секрет при создании пользовательского интерфейса: всегда передавать цвет, чтобы увидеть, где что находится.

Fellipe Malta 28.05.2019 15:10
Ответ принят как подходящий

Замените свой FlatButton приведенным ниже кодом и посмотрите, работает ли он для вас.

     FlatButton(
                padding: const EdgeInsets.all(0),
                onPressed: () => {

                },
                shape: new RoundedRectangleBorder(
                    borderRadius: new BorderRadius.circular(19)
                ),
                child: new Stack(
                  children: <Widget>[
                    Container(
                      width: 109,
                      height: 109,
                      child: Align(
                        alignment: Alignment.bottomLeft,
                        child: Image.asset('assets/demo.png',fit: BoxFit.fitHeight,),
                      ),
                    ),

                  ],
                ),
              ),

просто установка заполнения на ноль решила мою проблему

Ali 22.01.2021 13:20

Другие вопросы по теме