Как избежать получения пробелов из-за удаления панели приложения и строки состояния в android с помощью флаттера? - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок во флаттере, я создаю экран без панели приложения и строки состояния, когда я запускаю код, показывающий пробел внизу. Если я попытаюсь использовать screenheight, чтобы разделить его на две части, я получу поток моего второго контейнера.

Но код работает нормально на экране iPhone,

Примечание: я удалил панель приложения из эшафота и удалил панель уведомлений в моем main.dart

return Scaffold(
      // appBar: AppBar(title: Text('Screen Height')),
        body: Column(
          children: <Widget>[
            Expanded(
              child: Container(color: Colors.white),
            ),
            Expanded(
              child: Container(color: Colors.red),
            )
          ],
        ));

enter image description here

Ответы [ 3 ]

0 голосов
/ 25 апреля 2020

Чтобы добавить ответ @ LoVe, вы также можете добавить extendBody:true и extendBodyBehindAppBar: true к своему эшафоту.

0 голосов
/ 25 апреля 2020

Я не могу повторить упомянутую вами проблему. Ниже приведен простейший код, который я пытался использовать, используя ваш код в эмуляторе Android, и не вижу пробела внизу:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: MyHomePage()
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold( // appBar: AppBar(title: Text('Screen Height')),
        body: Column(children:
        [
          Expanded
            (child: Container
            (color: Colors.white),
          ),
          Expanded(
            child: Container(color: Colors.red),
          )
        ],
        )
    );
    // );
  }
}

enter image description here

0 голосов
/ 25 апреля 2020

, чтобы получить полноэкранное приложение, в вашем main методе:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(MyApp());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...