Size: a a a

Flutter Developers — русскоговорящее сообщество

2020 May 27

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
Nikita Domnickij
Зачем?
Мне нужны табы не в апп баре
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
Ну так они что в боттоме что в колонке под аппбаром будут
источник

s

san-smith in Flutter Developers — русскоговорящее сообщество
Nikita Domnickij
Ну так они что в боттоме что в колонке под аппбаром будут
Или нет - над ним может быть что-то другое.
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
san-smith
Или нет - над ним может быть что-то другое.
но ведь нету же
источник

s

san-smith in Flutter Developers — русскоговорящее сообщество
Nikita Domnickij
но ведь нету же
Откуда вы знаете? По скрину вывод сделали?
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
даже не знаю
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
Переслано от Evgeny Cherkasov
Есть Column, в котором TabBar и TabBarView. Как задать высоту для последнего?
источник

AS

Artem Shkryab in Flutter Developers — русскоговорящее сообщество
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
san-smith
Тогда если TabBarView завернуть в Expanded, то он займет все доступное пространство.
Однако все равно будет оверфлоить, если для его детей недостаточно места. Для этого можно завернуть его (или его детей) во что-нибудь прокручиваемое, например SingleChildScrollView.
Expanded не работает, выдает ошибку в консоли.
Пробовал по инструкции из ошибки указывать mainAxisSize: MainAxisSize.min у колонки, и вместо Expanded использовать Flexible с fit: FlexFit.loose.
Не помогает
источник

s

san-smith in Flutter Developers — русскоговорящее сообщество
Можете этот кусок кода показать? Который с колумном и таббар/таббарвью?
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
child: DefaultTabController(
                   length: 2,
                   initialIndex: 1,
                   child: Column(
                     mainAxisSize: MainAxisSize.min,
                     children: [
                       Align(
                         alignment: Alignment.centerLeft,
                         child: TabBar(
                           isScrollable: true,
                           labelColor: Constants.colorPrimary,
                           tabs: [
                             Tab(text: 'Auth',),
                             Tab(text: 'Basic',),
                           ],
                         ),
                       ),
                       Flexible(
                         fit: FlexFit.loose,
                         child: TabBarView(
                           children: [
                             Text('Auth'),
                             Text('Basic'),
                           ],
                         ),
                       )
                     ],
                   ),
                 ),
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
Ошибка:
The following assertion was thrown during performResize():
Horizontal viewport was given unbounded height.
Viewports expand in the cross axis to fill their container and constrain their children to match
their extent in the cross axis. In this case, a horizontal viewport was given an unlimited amount of
vertical space in which to expand.

The relevant error-causing widget was:
 TabBarView
источник

s

san-smith in Flutter Developers — русскоговорящее сообщество
Если так, тоже не работает?
Column(
                     
                     children: [
                      TabBar(
                           isScrollable: true,
                           labelColor: Constants.colorPrimary,
                           tabs: [
                             Tab(text: 'Auth',),
                             Tab(text: 'Basic',),
                           ],
                         ),
                       Expanded(
                         child: TabBarView(
                           children: [
                             Text('Auth'),
                             Text('Basic'),
                           ],
                         ),
                       )
                     ],
                   ),
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
The following assertion was thrown during performLayout():
RenderFlex children have non-zero flex but incoming height constraints are unbounded.
When a column is in a parent that does not provide a finite height constraint, for example if it is
in a vertical scrollable, it will try to shrink-wrap its children along the vertical axis. Setting a
flex on a child (e.g. using Expanded) indicates that the child is to expand to fill the remaining
space in the vertical direction.
These two directives are mutually exclusive. If a parent is to shrink-wrap its child, the child
cannot simultaneously expand to fit its parent.
Consider setting mainAxisSize to MainAxisSize.min and using FlexFit.loose fits for the flexible
children (using Flexible rather than Expanded). This will allow the flexible children to size
themselves to less than the infinite remaining space they would otherwise be forced to take, and
then will cause the RenderFlex to shrink-wrap the children rather than expanding to fit the maximum
constraints provided by the parent.
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
Возможно проблема где то выше в дереве?
источник

EC

Evgeny Cherkasov in Flutter Developers — русскоговорящее сообщество
Над DefaultTabController вот так:
Container -> Column (Row, Container -> DefaultTabContainer)
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
колонку в экспандед заверните
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
Вернее контроллер
источник

s

san-smith in Flutter Developers — русскоговорящее сообщество
DefaultTabController(
       length: 2,
       child: Column(
         children: [
           TabBar(
             isScrollable: true,
             labelColor: Colors.green,
             tabs: [
               Tab(
                 text: 'Auth',
               ),
               Tab(
                 text: 'Basic',
               ),
             ],
           ),
           Expanded(
             child: TabBarView(
               children: [
                 Text('Auth'),
                 Text('Basic'),
               ],
             ),
           )
         ],
       ),
     ),
   )


У меня все работает.
источник

ND

Nikita Domnickij in Flutter Developers — русскоговорящее сообщество
У вас в виджете с неограниченной высотой лежит еще один
источник