Как выровнять детей listview на одном уровне? - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу выровнять дочерние элементы listview на том же уровне, что и правый центр, я использую следующий код:

body: Container(
        child: ReorderableListView(
          onReorder: (oldIndex, newIndex) {
            setState(() {
              _updateItems(oldIndex, newIndex);
            });
          },
          children: [
            for (final item in data)
              Card(
                key: ValueKey(item),
                color: Colors.grey,
                child: Container(
                  padding: const EdgeInsets.only(left: 10, right: 10),
                  child: CheckboxListTile(
                    controlAffinity: ListTileControlAffinity.leading,
                    value: true,
                    onChanged: (bool value) {
                      setState(() {
                        value = !value;
                      });
                    },
                    title: Align(
                      alignment: Alignment.centerRight,
                      child: Text(
                        '$item',
                        style: TextStyle(
                          color: Colors.white,
                        ),
                      ),
                    ),
                  ),
                ),
              ),
          ],
        ),
      ),

Но в результате получается следующее изображение:

enter image description here

Как видите, у некоторых детей больше свободного места, чем у других, как можно решить эту проблему, пожалуйста, помогите мне, спасибо.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Ваш код работает нормально. Кажется, в данных есть некоторый пробел, как Луис упомянул в комментарии.

Я просто использовал ваш код и добавил несколько случайных данных.

enter image description here

0 голосов
/ 13 апреля 2020

Попробуйте и посмотрите, исправит ли это, я пытался воспроизвести проблему, и я действительно не могу, но это, казалось, немного помогло.

 Align(
                    alignment: Alignment.centerRight,
                    child: Text(
                      '$item',
                      textAlign: TextAlign.right,
                      style: TextStyle(
                        color: Colors.white,
                      ),
                    ),
                  ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...