Nasıl SpaceEvenly ve üst üste iki öğe yeniden boyutlandırmak için?

0

Soru

Yapmaya çalışıyorum spaceevenly bir Icon() ve birAutoSizeText() in a Row(). Miktar, ekli görüntülerde görebildiğiniz kadar uzun olduğunda, beklendiği gibi işlenir, ancak miktar sıfır veya oldukça kısa olduğunda, AutoSizeText() ortalanıyor, ancak bu, kenarlardan aynı mesafenin artık korunmamasına neden oluyor. Merkezlemenin neden olduğu ekstra bir mesafe var. Bunu nasıl düzelteceğimi bilmiyorum.

Düzenlemek. Açık değilse, pembe alışveriş çantası simgesine ve "Riepilogo Settimanale" bölümünde gösterilen miktara atıfta bulunuyorum. Restoran Simgesine ve miktarına bakarsanız, nasıl ortalanmadıklarını, sol kenara daha yakın olduklarını fark edebilirsiniz.

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

En iyi cevabı

1

Seni doğru anladıysam, metni ortalamak yerine sağa hizalamak istiyorsun.

Bunu başarmak için tek bir tane kullanmayı düşünün Spacer() simge ve metin arasında. Dış aralık (kenar boşluğu ve dolgu) kullanılarak yapılabilir Padding bunun yerine widget.

2021-11-24 00:29:45

İlk başta, Satırın eşit olarak uygun olduğu alana benzer bir davranışa sahip olmak istedim, sol kenar-simge, simge-metin, metin-sağ kenar arasında aynı boşluğu istedim. Bununla birlikte, bunu nasıl başaracağımı bilmiyorum, çünkü metin yeniden boyutlandırıldıktan sonra boyutu değiştirir, bu nedenle aralayıcı buna göre yeniden boyutlandırılabilmelidir. İstediğim şey bu olmasa bile, metni önerdiğiniz şekilde hizalamanın daha iyi olduğuna karar verdim, ancak iyi görünüyor
iocomxda

@iocomxda, oh, eğer 3 boşlukta aynı alana sahip olmak istiyorsan, 3 tane koymayı deneyebilirsin Spacer() bunun için widget'lar. Ancak metinler (farklı genişliğe sahip) sayfada birbirleriyle aynı hizada olmayacaktır (örneğin $2666 ve $0), bu nedenle sağa hizalama en yaygın yaklaşımdır.
user1032613

Nazik açıklama için teşekkür ederim! Doğru hizalamanın en yaygın yaklaşım olduğunu bilmiyordum.
iocomxda

Diğer dillerde

Bu sayfa diğer dillerde

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