#flutter #dart
Вопрос:
У меня есть контейнер на странице программы. В этом контейнере я отображаю историю событий в виджете временной шкалы. Все отображается по мере необходимости. Но я хочу добавить кнопку фильтра. Когда я нажимаю эту кнопку, я хочу, чтобы фильтр работал и выбирал нужные события. Но я не понимаю, как правильно добавить кнопку в контейнер. Мой скрин (виджет временной шкалы) :
Кодовый контейнер :
Expanded( child: Padding( padding: EdgeInsets.fromLTRB(7, 0, 7, 7), child: Container( alignment: Alignment.center, decoration: BoxDecoration( border: Border.all(width: 1.5), borderRadius: BorderRadius.circular(25)), child: Column( mainAxisSize: MainAxisSize.min, children: [ Container( height: 45, child: Text("история событий", style: TextStyle( fontSize: 25.0, color: Colors.blueGrey)), padding: EdgeInsets.all(2.0)), Expanded( child: Scrollbar( child: new ListView( shrinkWrap: true, children: [ new Container( alignment: Alignment.bottomLeft, child: FixedTimeline.tileBuilder( theme: TimelineThemeData( nodePosition: 0.23, color: Colors.blueGrey, indicatorTheme: IndicatorThemeData( position: 2, size: 20.0, ), connectorTheme: ConnectorThemeData( thickness: 2.5, ), ), builder: TimelineTileBuilder .connectedFromStyle( contentsAlign: ContentsAlign .basic, oppositeContentsBuilder: ( context, index) =gt; Padding( padding: const EdgeInsets .all(8.0), child: Text( _userDetails[index] .date), ), contentsBuilder: (context, index) =gt; Card( child: Padding( padding: const EdgeInsets .all(8.0), child: Text( _userDetails[index] .event), ), ), connectorStyleBuilder: (context, index) =gt; ConnectorStyle.solidLine, indicatorStyleBuilder: (context, index) =gt; IndicatorStyle.dot, itemCount: _userDetails.length, ), ) ), ], ))), ], ))))
Ответ №1:
попробуйте это
Column( mainAxisSize: MainAxisSize.min, children: [ Container( height: 45, child: Text("история событий", style: TextStyle( fontSize: 25.0, color: Colors.blueGrey)), padding: EdgeInsets.all(2.0)), Expanded( /// lt;-- add from child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children:[ SizedBox(), Container( width: 30, height: 30, decoration: BoxDecoration( border: Border.all( color: Colors.blue)),])), lt;--to Expanded....
Комментарии:
1. спасибо, но в строке «Выравнивание: Выравнивание.Пробел» возникла проблема (параметр «Пробел» не определен для типа «Выравнивание»). (Документация) Попробуйте импортировать библиотеку, которая определяет «Промежуток между», исправив имя на имя существующего средства получения или определив средство получения или поле с именем «Промежуток между».)
2.
mainAxisAlignment: MainAxisAlignment.spaceBetween
, я написал от руки в этот редактор, здесь нет ошибок компиляции)3. могу ли я поднять эту кнопку еще выше? потому что она слишком низкая и вся история событий пала
4. Я добавил обновленный экран к своему вопросу
5. вы можете заменить
Expanded
мой пример кода наContainer
сwidth: double.infinity
иheight: 35
, например, или использоватьFlexible
сflex
параметром для всех ваших виджетов в первомColumn