Выравнивание виджетов без стека в Flutter

#flutter

#flutter

Вопрос:

Я знаю, как правильно выравнивать виджеты со стеком, но я закончил использовать Stack, потому что иногда это доставляет мне много головной боли, когда все становится слишком беспорядочным. Я хотел бы спросить, есть ли способ складывать виджеты без использования стека?Это похоже на Transform.translate может сделать то же самое, но есть ли более надежный способ сделать это?

             Container(
          height: 70.0,
          width: 70.0,
          decoration: BoxDecoration(
            gradient: bgDarkColorGradient,
            shape: BoxShape.circle,
            boxShadow: [
              BoxShadow(
                offset: Offset(0, 12),
                blurRadius: 24.0,
                spreadRadius: 0.0,
                color: Color.fromARGB(0, 0, 0, 130),
              ),
            ],
          ),
          child: Stack(
            children: [
              Positioned(
                child: Align(
                  alignment: Alignment.center,
                  child: Icon(
                    Icons.person_outline_outlined,
                    color: Colors.white,
                  ),
                ),
              ),
              Positioned(
                top: 35,
                right: 0,
                child: Align(
                  alignment: Alignment.bottomRight,
                  child: Container(
                    height: 32.0,
                    width: 32.0,
                    decoration: BoxDecoration(
                      shape: BoxShape.circle,
                      color: Colors.white,
                      border: Border.all(
                        width: 4.0,
                        color: Color.fromARGB(255, 77, 93, 144),
                      ),
                    ),
                    child: Icon(Icons.edit, size: 12.0),
                  ),
                ),
              ),
            ],
          ),
        ),
 

С помощью этого кода я почти добился этого результата.Виджет

Наконец, мой вопрос заключается в том, есть ли способ получить такие результаты без использования стека?

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

1. Может быть, лучший вопрос в том, почему это вызывает у вас головную боль?

2. @Syph иногда мне приходится использовать разные стеки вместе, и трудно отследить, какой из них принадлежит правильному родителю. Поэтому я хочу свести к минимуму использование стека в своих приложениях.

3. Чувствую, что вам не следует уклоняться от виджета стека из-за этого, но да, не уверен, какие другие варианты хороши, если не использовать CustomMultiChildLayout.

4. Я согласен с @Syph. Один из вариантов для вас, чтобы хорошо отслеживать ваши виджеты со стеком, — это создавать их в разных файлах. Например, если вам нужно сложить 2 контейнера и 2 столбца, а затем сложить эти четыре виджета, вы можете создать отдельный виджет со стеком для этих 2 контейнеров, другой для 2 столбцов, а затем сложить их на нужном экране.