Элемент строки флаттера остается центром даже при использовании выравнивания, или элемент столбца не может изменить его выравнивание по левому краю? - PullRequest
0 голосов
/ 13 января 2020

У меня есть следующий контейнер, и в нем я вызываю функцию для создания дочернего виджета. Проблема в том, что дочерние строки всегда остаются по центру. Я попытался двумя способами

  1. выравнивание: Alignment.topLeft,
  2. Я попытался встроить его дальше в столбец и попытался crossAxisAlignment: CrossAxisAlignment.start.

Оба метода не могут выровнять элемент по левому краю. Он остается в центральной части контейнера. Что может быть неправильным ниже, это мои коды.

Container(
  alignment:Alignment.topRight,
  margin: const EdgeInsets.fromLTRB(10, 10, 0, 0),
  padding: const EdgeInsets.fromLTRB(0, 10, 0, 10),
  child: Column(
    mainAxisSize: MainAxisSize.max,
    mainAxisAlignment: MainAxisAlignment.start,
    crossAxisAlignment: CrossAxisAlignment.start,
    children: <Widget>[
      Column(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.start,
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          buildDateTime("datetime"),
        ]
      )
    ],
  )
),

Ниже приведен виджет, который я вызываю для построения строки.

Widget buildDateTime(String plate) {
  return new Container(
    child: Container(
      color: Colors.transparent,
      padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
      child: Row(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: [
          Icon(Icons.access_time, size: 15.0, color: lightGrey),
          Text(
            ' 23/01/20202',
            style: new TextStyle(
              color: lightGrey,
              fontFamily: "Bpreplay",
              fontWeight: FontWeight.w400,
              fontSize: 14.0,
            ),
          ),
          Text(
            ' 09:00',
            style: new TextStyle(
              color: lightGrey,
              fontFamily: "Bpreplay",
              fontWeight: FontWeight.w400,
              fontSize: 14.0,
            ),
          ),
        ],
      ),
    ),
  );
}

Вот снимок экрана.

enter image description here

Ответы [ 2 ]

1 голос
/ 13 января 2020

Я не могу воспроизвести упомянутую вами проблему. Для меня это занимает всю ширину.

Попробуйте это,

Widget buildDateTime(String plate) {
  return Align(
    alignment: Alignment.centerLeft,
    child: Row(
      mainAxisSize: MainAxisSize.min,
      mainAxisAlignment: MainAxisAlignment.start,
      children: [
        Icon(Icons.access_time, size: 15.0, color: Colors.grey),
        Text(
          ' 23/01/20202',
          style: const TextStyle(
            color: Colors.grey,
            fontFamily: "Bpreplay",
            fontWeight: FontWeight.w400,
            fontSize: 14.0,
          ),
        ),
        Text(
          ' 09:00',
          style: const TextStyle(
            color: Colors.grey,
            fontFamily: "Bpreplay",
            fontWeight: FontWeight.w400,
            fontSize: 14.0,
          ),
        ),
      ],
    ),
  );
}
1 голос
/ 13 января 2020

Я сделал значок часов выровненным по левому краю, дату по центру и по правому краю. Это то, что вы пытаетесь достичь?

Container(
  color: Colors.grey,
  alignment:Alignment.topRight,
  padding: const EdgeInsets.fromLTRB(20, 10, 20, 10),
  child: buildDateTime("datetime")
);

Widget buildDateTime(String plate) {
  return new Container(
    child: Container(
      color: Colors.transparent,
      child: Row(
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.start,
        children: [
          Icon(Icons.access_time, size: 15.0, color: Colors.grey[100]),
          Text(
            ' 23/01/20202',
            style: new TextStyle(
              color: Colors.grey[100],
              fontFamily: "Bpreplay",
              fontWeight: FontWeight.w400,
              fontSize: 14.0,
            ),
          ),
          Text(
            ' 09:00',
            style: new TextStyle(
              color: Colors.grey[100],
              fontFamily: "Bpreplay",
              fontWeight: FontWeight.w400,
              fontSize: 14.0,
            ),
          ),
        ],
      ),
    ),
  );
}

Мой результат:

Screenshot of result

...