Satır neden bir Sütunun içinde yatay olarak ortalanmıyor

Aug 17 2020

Varsayılan olarak bildiğimiz gibi, Column tam genişliğe sahipse çocuklarını yatay olarak ortalıyor ama bir sütunun içine iki kart ve bir satır yerleştirdiğimde, iki kart yatay olarak ortalanarak ortalanarak, ancak satır başlangıç ​​konumunda aynı kalıyor ? Neden?
Bence satır yatay olarak ortalanmalı çünkü benim durumumda Column'un bir çocuğu ama değil.

Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter App'),
      ),
      body: Container(
        color: Colors.purple,
        height: double.infinity,
        child: Column(
          //  mainAxisAlignment: MainAxisAlignment.center,
          //  crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            Card(
              child: Text(
                'Chart',
                style: TextStyle(fontSize: 20.0),
              ),
              elevation: 5,
              color: Colors.blue,
            ),
            Card(
              child: Text(
                'list of tx',
                style: TextStyle(
                  fontSize: 20.0,
                ),
              ),
              color: Colors.purple,
            ),
            Row(
              children: [
                Text('this is row'),
              ],
            ),
          ],
        ),
      ),
    );
  }
}



bu kodun çıktısı

Yanıtlar

1 Uni Aug 17 2020 at 16:14

Bu, varsayılan olarak Row'un tüm yatay alanı alacağı için oluyor. Mümkün olduğunca az yer kaplamasını söyleyerek düzeltebilirsiniz:

Row(
    mainAxisSize: MainAxisSize.min,
    ...
)

mainAxisAlignmentSatırın olarak ayarlanması, MainAxisAlignment.centeryalnızca Satır içinde bir widget varsa çalışacaktır. Sadece çocuklarına merkeze gitmelerini söyler.

2 faroukosama Aug 17 2020 at 16:17

Varsayılan olarak mainAxisSizemülkiyet olduğu MainAxisSize.maxiçinde Satır sadece bunu değiştirmek yapmanız gereken şey, Widget MainAxisSize.min, ana gereci tarafından Etkiler için, bu örnekte kim Sütun

Row(
    mainAxisSize: MainAxisSize.min,
    ...
)
1 Yash Aug 17 2020 at 16:08

mainAxisAlignmentSatırınıza argüman aktarmayı deneyin . Örneğin

Row(
    mainAxisAlignment: MainAxisAlignment.center,
    ...
)

Bu, Satırın çocuklarının Ortalanmasını sağlayacaktır.