在Flutter中,为什么Scaffold的主体不能直接使用Row()?

3bygqnnd  于 2022-12-05  发布在  Flutter
关注(0)|答案(3)|浏览(153)

如果我使用Row()而不是Center(),它将不会显示,只是空白。
我期待一个音乐播放器一样的布局。使2行,第一行包含“左菜单”和“扩展容器”的内容。

qfe3c7zg

qfe3c7zg1#

将其放入scaffold中,您将看到左侧菜单:

drawer: const Drawer(
          child: Text("Left Menu")
      ),

把这个放进架体里面就行了.展开一排:

Column(
          children: [

            Expanded(
                child: Container(
                  color: Colors.green,
                  child: const Center(child: Text("1")),
                )
            ),

            Row(
              children: const [
                Text("1"),
                SizedBox(width: 10),
                Text("2"),
              ],
            ),
          ],
        )
fhg3lkii

fhg3lkii2#

如果您将center替换为row,它可能会显示在左上角而不是中间。请尝试将Row换行为Center,它应该会显示在中间。对于该行,您需要添加mainAxisAlignment。

import 'package:flutter/material.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center (child: Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children:[ Text('Left menu'),Text('Place container here')]
        ),),
      ),
    );
  }
}
lp0sw83n

lp0sw83n3#

这其实是个错误的问题。真实的的问题是:如果ListView被列、行嵌套,则不会显示,需要在外部使用Expanded或Container,然后再用列或行嵌套。

相关问题