Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Flitter应用在IOS模拟器上看起来不错,但在Android上却溢出了?_Android_Ios_Android Studio_Flutter_Dart - Fatal编程技术网

为什么我的Flitter应用在IOS模拟器上看起来不错,但在Android上却溢出了?

为什么我的Flitter应用在IOS模拟器上看起来不错,但在Android上却溢出了?,android,ios,android-studio,flutter,dart,Android,Ios,Android Studio,Flutter,Dart,我知道有不同的屏幕尺寸,但有没有办法解释这一点?我也不认为屏幕大小有什么不同。Android仿真器是Nexus6,IOS仿真器是iPhone11,相差0.14英寸。IOS版本非常适合,而安卓版本则大量溢出。附件是截图 除了把所有东西挤得更紧之外,我该如何解决这个问题?有没有一种方法可以使所有东西都与屏幕大小成比例,这样在IOS上看起来都一样,但在Android手机上却可以缩小?我的Dart代码如下: Widget build(BuildContext context) { return Mate

我知道有不同的屏幕尺寸,但有没有办法解释这一点?我也不认为屏幕大小有什么不同。Android仿真器是Nexus6,IOS仿真器是iPhone11,相差0.14英寸。IOS版本非常适合,而安卓版本则大量溢出。附件是截图

除了把所有东西挤得更紧之外,我该如何解决这个问题?有没有一种方法可以使所有东西都与屏幕大小成比例,这样在IOS上看起来都一样,但在Android手机上却可以缩小?我的Dart代码如下:

Widget build(BuildContext context) {
return MaterialApp(
  home: Scaffold(
    backgroundColor: Colors.teal,
    body: SafeArea(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Center(
            child: CircleAvatar(
              radius: 100.0,
              backgroundImage: AssetImage('images/headshot.jpg'),
            ),
          ),
          SizedBox(
            height: 0.0,
          ),
          Container(
            child: Text(
              'Lawrence Jing',
              style: TextStyle(
                  fontSize: 50,
                  color: Colors.white,
                  fontFamily: 'Dancing_Script'),
            ),
          ),
          SizedBox(
            height: 10.0,
          ),
          Container(
            child: Text(
              'SERTIFIED CASTING INTERN',
              style: TextStyle(
                  fontSize: 20,
                  color: Colors.white,
                  fontWeight: FontWeight.bold),
            ),
          ),
          Card(
            color: Colors.amberAccent,
            margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
            child: ListTile(
              leading: Row(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  Icon(Icons.school),
                  SizedBox(
                    width: 10.0,
                  ),
                  VerticalDivider(),
                ],
              ),
              title: Text(
                'University of Michigan',
                style: TextStyle(
                  color: Colors.blue,
                  fontSize: 19.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              enabled: false,
            ),
          ),
          SizedBox(
            height: 23.0,
            width: 200.0,
            child: Divider(
              color: Colors.teal[200],
            ),
          ),
          Card(
            color: Colors.white,
            margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
            child: ListTile(
              leading: Icon(
                Icons.phone,
                color: Colors.teal,
              ),
              title: Text(
                '(650)278-7409',
                style: TextStyle(
                  color: Colors.teal[600],
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              enabled: true,
              onTap: () => launch("tel:+1234"),
              onLongPress: () => launch("sms: 1234"),
            ),
          ),
          SizedBox(
            height: 10.0,
          ),
          Card(
            color: Colors.white,
            margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
            child: ListTile(
              leading: Icon(
                Icons.email,
                color: Colors.teal,
              ),
              title: Text(
                'lajing@umich.edu',
                style: TextStyle(
                  color: Colors.teal[600],
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              enabled: true,
              onTap: () => launch("mailto:email"),
            ),
          ),
          SizedBox(
            height: 10.0,
          ),
          Card(
            color: Colors.white,
            margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
            child: ListTile(
              leading: Icon(
                Icons.account_circle,
                color: Colors.teal,
              ),
              title: Text(
                'LinkedIn',
                style: TextStyle(
                  color: Colors.teal[600],
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              enabled: true,
              onTap: () => launch("https://www.linkedin.com/in/lajing/"),
            ),
          ),
          SizedBox(
            height: 10.0,
          ),
          Card(
            color: Colors.white,
            margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
            child: ListTile(
              leading: Icon(
                Icons.code,
                color: Colors.teal,
              ),
              title: Text(
                'GitHub',
                style: TextStyle(
                  color: Colors.teal[600],
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              enabled: true,
              onTap: () => launch("https://github.com/LarryJing"),
            ),
          ),
        ],
      ),
    ),
  ),
);}
如您所见,所有内容的大小几乎都是硬编码的。

因为您使用的是具有特定高度的SizedBox,如果屏幕大小较小,它将溢出。您可以使用MediaQuery.ofcontext.size.height将SizedBox的高度用作百分比或屏幕总高度

第二种方法是使用间隔符,并根据列中的可用空间对内容进行扩展

希望这能有所帮助。

因为您使用的是具有特定高度的SizedBox,如果屏幕尺寸较小,它将溢出。您可以使用MediaQuery.ofcontext.size.height将SizedBox的高度用作百分比或屏幕总高度

第二种方法是使用间隔符,并根据列中的可用空间对内容进行扩展

希望这对您有所帮助。

您应该使用SingleChildScrollView作为列的父级,这样,如果空间不可用,它将可滚动,或者您可以使用ListView而不是列

比如说

 @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.teal,
        body: SafeArea(
          child: SingleChildScrollView(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Center(
                  child: CircleAvatar(
                    radius: 100.0,
                    backgroundImage: AssetImage('images/headshot.jpg'),
                  ),
                ),
                SizedBox(
                  height: 0.0,
                ),
                Container(
                  child: Text(
                    'Lawrence Jing',
                    style: TextStyle(
                        fontSize: 50,
                        color: Colors.white,
                        fontFamily: 'Dancing_Script'),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Container(
                  child: Text(
                    'SERTIFIED CASTING INTERN',
                    style: TextStyle(
                        fontSize: 20,
                        color: Colors.white,
                        fontWeight: FontWeight.bold),
                  ),
                ),
                Card(
                  color: Colors.amberAccent,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Row(
                      mainAxisSize: MainAxisSize.min,
                      children: <Widget>[
                        Icon(Icons.school),
                        SizedBox(
                          width: 10.0,
                        ),
                        VerticalDivider(),
                      ],
                    ),
                    title: Text(
                      'University of Michigan',
                      style: TextStyle(
                        color: Colors.blue,
                        fontSize: 19.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: false,
                  ),
                ),
                SizedBox(
                  height: 23.0,
                  width: 200.0,
                  child: Divider(
                    color: Colors.teal[200],
                  ),
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.phone,
                      color: Colors.teal,
                    ),
                    title: Text(
                      '(650)278-7409',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("tel:+1234"),
                    onLongPress: () => launch("sms: 1234"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.email,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'lajing@umich.edu',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("mailto:email"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.account_circle,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'LinkedIn',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("https://www.linkedin.com/in/lajing/"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.code,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'GitHub',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("https://github.com/LarryJing"),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
您应该使用SingleChildScrollView作为列的父级,所以如果空间不可用,那么它将可滚动,或者您可以使用ListView而不是列

比如说

 @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.teal,
        body: SafeArea(
          child: SingleChildScrollView(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Center(
                  child: CircleAvatar(
                    radius: 100.0,
                    backgroundImage: AssetImage('images/headshot.jpg'),
                  ),
                ),
                SizedBox(
                  height: 0.0,
                ),
                Container(
                  child: Text(
                    'Lawrence Jing',
                    style: TextStyle(
                        fontSize: 50,
                        color: Colors.white,
                        fontFamily: 'Dancing_Script'),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Container(
                  child: Text(
                    'SERTIFIED CASTING INTERN',
                    style: TextStyle(
                        fontSize: 20,
                        color: Colors.white,
                        fontWeight: FontWeight.bold),
                  ),
                ),
                Card(
                  color: Colors.amberAccent,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Row(
                      mainAxisSize: MainAxisSize.min,
                      children: <Widget>[
                        Icon(Icons.school),
                        SizedBox(
                          width: 10.0,
                        ),
                        VerticalDivider(),
                      ],
                    ),
                    title: Text(
                      'University of Michigan',
                      style: TextStyle(
                        color: Colors.blue,
                        fontSize: 19.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: false,
                  ),
                ),
                SizedBox(
                  height: 23.0,
                  width: 200.0,
                  child: Divider(
                    color: Colors.teal[200],
                  ),
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.phone,
                      color: Colors.teal,
                    ),
                    title: Text(
                      '(650)278-7409',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("tel:+1234"),
                    onLongPress: () => launch("sms: 1234"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.email,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'lajing@umich.edu',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("mailto:email"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.account_circle,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'LinkedIn',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("https://www.linkedin.com/in/lajing/"),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Card(
                  color: Colors.white,
                  margin: EdgeInsets.fromLTRB(50, 10, 50, 10),
                  child: ListTile(
                    leading: Icon(
                      Icons.code,
                      color: Colors.teal,
                    ),
                    title: Text(
                      'GitHub',
                      style: TextStyle(
                        color: Colors.teal[600],
                        fontSize: 20.0,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    enabled: true,
                    onTap: () => launch("https://github.com/LarryJing"),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }