Как представить пустой вид в флаттере? - PullRequest
0 голосов
/ 24 ноября 2018

Как представить пустое представление во флаттере, поскольку Widget.build не может возвратить ноль, чтобы указать, что нечего визуализировать.

Ответы [ 3 ]

0 голосов
/ 24 ноября 2018

Рекомендуемый виджет, чтобы ничего не показывать, это использовать [SizedBox][1].

SizedBox(
  width: 200.0,
  height: 300.0,
  child: const Card(child: Text('Hello World!')),
)
0 голосов
/ 22 апреля 2019

Для любого, как я, который задавался вопросом, что такое «правильный способ» отображения пустого виджета - официальный код материала использует это:

Widget build(BuildContext context) {
  return SizedBox.shrink();
}

SizedBox.shrink() - это виджетэто в отличие от Container или Material не имеет фона или каких-либо украшений вообще.Он масштабирует себя до минимально возможной области, если на него не влияют родительские ограничения.

0 голосов
/ 24 ноября 2018
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(

    );
  }
}

Вы также можете просто вернуть пустую Container и избегать использования Scaffold полностью.Но это приведет к черному экрану, если это единственный основной виджет в вашем приложении, вы можете установить свойство color для Container, если хотите запретить черный фон.

Пример:

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.white // This is optional
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...