#flutter #dart #widget #listtile
Вопрос:
Я хочу выровнять все внутри списка (заголовок, подзаголовок, начало, конец и т. Д.) Вертикально по центру. Как лучше всего это сделать?
const Padding( padding: EdgeInsets.fromLTRB(0, 20, 0, 20), child: Card( child: ListTile( leading: FlutterLogo(size: 55), title: Text('Overview'), subtitle: Text( '250.956.261', ), trailing: Icon( Icons.arrow_right_outlined, size: 30, ), isThreeLine: true, ), ), ),
Ответ №1:
Я изначально неправильно понял ваш вопрос о горизонтальном центрировании содержимого ListTile
. Чтобы расположить элементы вертикально внутри карты, вам может потребоваться только отключить этот isThreeLine
параметр. Если отключить его, содержимое будет центрировано по вертикали.
Код для метода сборки:
@override Widget build(BuildContext context) { return const Center( child: Card( child: ListTile( leading: FlutterLogo(size: 55), title: Text('Overview'), subtitle: Text( '250.956.261', ), trailing: Icon( Icons.arrow_right_outlined, size: 30, ), // isThreeLine: true, ), ), ); }
Комментарии:
1. Ух ты! Такое простое решение. Спасибо!
Ответ №2:
Вы можете использовать альтернативный код ниже, чтобы получить то, что вы хотите
Padding( padding: const EdgeInsets.fromLTRB(0, 20, 0, 20), child: Card( child: Padding( padding: const EdgeInsets.all(20), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( children: [ const FlutterLogo(size: 55), Column( crossAxisAlignment: CrossAxisAlignment.start, children: const [ Text('Overview'), Text( '250.956.261', ), ], ), ], ), const Icon( Icons.arrow_right_outlined, size: 30, ), ], ), ), ), );
Комментарии:
1. Спасибо за ваше время! Хотя просто удаление «isThreeLine: true» сделало это, как упоминалось @KGEM