TabBarView расширяется до нижней части независимо от запуска - PullRequest
0 голосов
/ 04 марта 2019

Я работал над флаттером, и теперь я должен сделать Панель вкладок для страницы.Поскольку я преуспел в создании вкладок, но есть одна вещь, которая не позволяет мне выполнить мою задачу, а именно:

У меня есть проектная схема, подобная этой:

Column{
   mainAxisSize: MainAxisSize.max,
   crossAxisAlignment: CrossAxisAlignment.stretch,
   children: <widget>[
      Text("Hello World!"),
      Container(child: TabWidget())
   ]
}

Я не дал никакой конкретной высоты контейнеру TabWidget(), так как хотел, чтобы вкладки поднимались на полную высоту до самого дна.

TabWidget

child: TabBar(
   controller: _controller,
   tabs: [
      new Tab(
         child: Padding(
           padding: EdgeInsets.only(top: 18.0),
           child: Text(""),
         )
      ),
      new Tab(
         child: Padding(
           padding: EdgeInsets.only(top: 18.0),
           child: Text(""),
         )
      ),    
    ]
    )
),
Container(
  //Deifining the height here, not deifing it will hide the content of the tabs
  height: MediaQuery.of(context).size.height/2.3,
  child: new TabBarView(
     controller: _controller,
     children: <Widget>[
        new Container(
          padding: EdgeInsets.only(top: 15.0),
          child: Listview(
            scrollDirection: Axis.Vertical,
            children: <Widget> [
               ...
            ]
          )
        ),
        new Container(
          padding: EdgeInsets.only(top: 15.0),
          child: Listview(
            scrollDirection: Axis.Vertical,
            children: <Widget> [
               ...
            ]
          )
        )  
      ]
    )
  )
  ]
);

Вот подвох, теперь я старался изо всех сил, чтобы получить результат, и, следовательно, сделал это:

  1. Использование Expanded() в TabWidget, чтобы взятьвверх по высоте
  2. Использование double.infinity() в элементе высоты TabBarView
  3. Я прочитал этот ответ: TabBarView без ограниченной высоты , но я нечтобы мой экран можно было прокручивать, Silver в этом случае не требуется.Просто TabBarView должен быть расширен до основания независимо от того, откуда он начинается

Я не хочу задавать конкретную высоту моему TabBarView, вместо этого я хочу еговзять всю высоту до нижней части независимо от экрана, поэтому моя высота является динамической в ​​соответствии с экраном .

Я хотел бы получить некоторую информацию по этому вопросу, чтобы достичь своей цели.Я использую ListView() в дочернем элементе TabBarView, поэтому, даже если размер порции экрана телефона небольшого размера, пользователь все равно сможет прокручивать контент.Но высота должна быть до дна, независимо от размера экрана.Спасибо.

Любые вопросы приветствуются здесь.

1 Ответ

0 голосов
/ 04 марта 2019

Если вы можете рассчитать высоту других виджетов на экране над панелью вкладок, то с помощью MediaQuery.of(context).size.height вы получите высоту экрана.Вычтите оставшуюся высоту из высоты экрана, и вы можете использовать результирующее значение.

PS Будьте осторожны с вычислениями и вычтите все значения высоты, кроме вкладки, включая безопасную область, которую вы получите от MediaQuery.of(context).padding.top& MediaQuery.of(context).padding.bottom.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...