Флаттер - Как выровнять выделенный элемент из DropdownButton? - PullRequest
1 голос
/ 23 апреля 2019

Я не могу выровнять выбранный элемент из выпадающего меню по центру.

Я попробовал child: Center () под DropdownMenuItem, он может выровнять эти элементы, однако после того, как я выбрал один из элементов, выбранный элемент сразу же выровнялся по левому краю. Я также хотел бы выровнять выбранный элемент по центру.

Кто-нибудь знает, как этого добиться?

Заранее спасибо.

Невозможно выровнять выбранный элемент по центру

_dropdownValues:

final List<String> _dropdownValues = [
  "One",
  "Two12345",
  "Three123456789",
  "Four",
  ];

  String _selectedValue;

Under Widget Build:

body: Center(

        child: Row(

          mainAxisAlignment: MainAxisAlignment.center,

          children: <Widget>[
            Container( 
              child: Text('Name:',),
            ),

            Container(

              child: Center(
                child: DropdownButton(
                  hint: Text('Select ...'),
                  items: _dropdownValues.map((value) => DropdownMenuItem(
                    child: Center( child: Text(value), ),
                    value: value,
                  )).toList(),

                  onChanged: (String value) {
                    setState(() {
                      this._selectedValue = value;
                    });
                  },
                  isExpanded: false,
                  value: _selectedValue,
                ),
              ),
            ),
          ],
        ),
      ),

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Если вы не возражаете установить фиксированную ширину, вы можете обернуть своего DropdownMenuItem Text ребенка в SizedBox.Затем вы устанавливаете для свойства textAlign значение TextAlign.center, например:

DropdownButton(
  // ...
  items: _dropdownValues.map((value) => DropdownMenuItem(
    child: SizedBox(
      width: 100.0, // for example
      child: Text(value, textAlign: TextAlign.center),
    ),
    value: value,
  )).toList(),
  // ...
),
0 голосов
/ 23 апреля 2019

Это ожидаемое поведение, по умолчанию выравнивание пункта меню равно centerLeft по этой ссылке: https://github.com/flutter/flutter/issues/3759

Вы можете поднять новую проблему для этой функции на странице Github флаттера.

...