Jak SpaceEvenly a Velikost dvou položek v Řadě?

0

Otázka

Snažím se spaceevenly o Icon() a AutoSizeText() v Row(). Když částka je dlouho, jak můžete vidět v přiložených snímků to činí, jak se očekávalo, ale když částka je nula nebo velmi krátký, AutoSizeText() je na střed, ale to způsobí, že stejné vzdálenosti od okrajů je již zachována. K dispozici je navíc vzdálenost, způsobené centrování. Já nevím, jak to napravit.

Edit. Pokud to není jasné, mám na mysli růžová nákupní taška ikona a množství ukázala v "Riepilogo Settimanale" sekce. Když se podíváte na Restauraci Ikonu a její výše, můžete si všimnout, jak jsou ne střed, které jsou blíže k levému okraji.

orginal view

enter image description here

Container(
      decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.circular(20),
      ),
      width: size.width * 0.3,
      height: size.height,
      // height: size.height * 0.055,
      child: Row(
        children: [
          Spacer(),
          Expanded(
            flex: 3,
            child: Container(
              child: LayoutBuilder(
                builder: (context, constraint) {
                  return Icon(
                    icona,
                    color: colore,
                    size: constraint.biggest.width * 1,
                  );
                },
              ),
            ),
          ),
          Spacer(),
          Expanded(
            flex: 6,
            child: Center(
              child: AutoSizeText(
                importo,
                style: TextStyle(
                  fontSize: 20,
                  fontWeight: FontWeight.bold,
                  color: colore,
                ),
                maxLines: 1,
              ),
            ),
          ),
          Spacer(),
        ],
      ),
    )
android dart flutter flutter-layout
2021-11-23 20:16:17
1

Nejlepší odpověď

1

Pokud jsem správně pochopil, tak ty chceš, aby vpravo-zarovnat text, ne centrum.

K dosažení tohoto cíle, zvažte použití jednoho Spacer() v-mezi ikonou a textem. Vnější rozteč (okraj a odsazení), může být provedeno pomocí Padding widget místo.

2021-11-24 00:29:45

Nejdřív jsem chtěl mít chování podobné do prostoru rovnoměrně propery Řady, jsem chtěl stejný prostor mezi levým okrajem-ikona, ikona-text, text-pravý okraj. Nevím, jak se achive, že i když, protože text, změnit velikost, jakmile to změna velikosti, tak rozpěrka by měl být schopen změnit velikost odpovídajícím způsobem. Rozhodl jsem se, že byl lepší jen správně sladit text, jak jste naznačil, i když to není to, co jsem chtěl, ale zdá slušné
iocomxda

@iocomxda, oh, pokud jste chtěli mít stejný prostor v 3 mezery, můžete se pokusit dát 3 Spacer() widgety pro. Ale texty (různé šířky), není sladit s ostatními na stránce (jako s $2666 a $0), tak vpravo-zarovnat je nejčastější přístup.
user1032613

Děkuji za laskavé vysvětlení! Nevěděl, vpravo-zarovnat byla nejčastější přístup.
iocomxda

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................