Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Flutter 颤振:如何调整小部件以避免android';s底部导航栏_Flutter_Dart_Flutter Layout_Safearealayoutguide - Fatal编程技术网

Flutter 颤振:如何调整小部件以避免android';s底部导航栏

Flutter 颤振:如何调整小部件以避免android';s底部导航栏,flutter,dart,flutter-layout,safearealayoutguide,Flutter,Dart,Flutter Layout,Safearealayoutguide,在myregister屏幕中,手机底部导航栏隐藏了部分内容(位于底部)。内容仅在我关闭底部导航栏时可见 我想要实现的是,每当手机上显示底部导航栏时,我希望将其隐藏的内容向上推,以便于查看;每当导航栏从视线中移开时,我希望内容保持在原来的位置 这是我的密码 class Body extends StatelessWidget { @override Widget build(BuildContext context) { return SafeArea( child:

在myregister屏幕中,手机底部导航栏隐藏了部分内容(位于底部)。内容仅在我关闭底部导航栏时可见

我想要实现的是,每当手机上显示底部导航栏时,我希望将其隐藏的内容向上推,以便于查看;每当导航栏从视线中移开时,我希望内容保持在原来的位置

这是我的密码

class Body extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: SizedBox(
        width: double.infinity,
        child: Padding(
          padding:
              EdgeInsets.symmetric(horizontal: getProportionateScreenWidth(20)),
          child: SingleChildScrollView(
            child: Column(
              children: [
                Text(
                  "Register Account",
                  style: headingStyle,
                ),
                Text(
                  "Complete your details or continue \nwith social media.",
                  textAlign: TextAlign.center,
                ),
                SizedBox(height: SizeConfig.screenHeight * 0.04), // 4%
                SignUpForm(),
                SizedBox(height: SizeConfig.screenHeight * 0.03), // 3%
                Row(mainAxisAlignment: MainAxisAlignment.center, children: [
                  SocialCard(
                    icon: "assets/icons/google-icon.svg",
                    press: () {},
                  ),
                  SocialCard(
                    icon: "assets/icons/facebook-2.svg",
                    press: () {},
                  ),
                  SocialCard(
                    icon: "assets/icons/twitter.svg",
                    press: () {},
                  )
                ]),
                SizedBox(height: getProportionateScreenHeight(15)),
                Text(                                <--- HIDDEN FROM VIEW
                  "By continuing you confirm that you agree with our Term and Condition",
                  textAlign: TextAlign.center,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

// Get Screen Size
class SizeConfig {
  static MediaQueryData _mediaQueryData;
  static double screenWidth;
  static double screenHeight;
  static double defaultSize;
  static Orientation orientation;

  void init(BuildContext context) {
    _mediaQueryData = MediaQuery.of(context);
    screenWidth = _mediaQueryData.size.width;
    screenHeight = _mediaQueryData.size.height;
    orientation = _mediaQueryData.orientation;
  }
}

// Get the proportionate height as per screen size
double getProportionateScreenHeight(double inputHeight) {
  double screenHeight = SizeConfig.screenHeight;
  // 812 is the layout height that designer use
  return (inputHeight / 812.0) * screenHeight;
}
类主体扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回安全区(
孩子:大小盒子(
宽度:double.infinity,
孩子:填充(
衬垫:
边缘集。对称(水平:GetProtorateTesCreenWidth(20)),
子:SingleChildScrollView(
子:列(
儿童:[
正文(
“注册帐户”,
风格:头型,
),
正文(
“完成您的详细信息或继续使用社交媒体。”,
textAlign:textAlign.center,
),
SizeBox(高度:SizeConfig.screenHeight*0.04),//4%
SignUpForm(),
SizeBox(高度:SizeConfig.screenHeight*0.03),//3%
行(mainAxisAlignment:mainAxisAlignment.center,子项:[
社会信用卡(
图标:“资产/图标/谷歌图标.svg”,
按:(){},
),
社会信用卡(
图标:“资产/图标/facebook-2.svg”,
按:(){},
),
社会信用卡(
图标:“资产/icons/twitter.svg”,
按:(){},
)
]),
SizedBox(高度:GetControlutesCreenheight(15)),

Text(使用
SingleChildScrollView
有任何特殊要求吗?如果没有,请尝试下面的代码,如果这对您有效,下面是它的作用

  • SigleChildScrollView
    替换为
    Container
  • 将您的
    SignupForm()
    包装在
    Expanded()小部件中
  • 这是密码-

    class Body extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: SizedBox(
            width: double.infinity,
            child: Padding(
              padding:
                  EdgeInsets.symmetric(horizontal: getProportionateScreenWidth(20)),
              child: Container(
                child: Column(
                  children: [
                    Text(
                      "Register Account",
                      style: headingStyle,
                    ),
                    Text(
                      "Complete your details or continue \nwith social media.",
                      textAlign: TextAlign.center,
                    ),
                    SizedBox(height: SizeConfig.screenHeight * 0.04), // 4%
                    Expanded(child: SignUpForm()),
                    SizedBox(height: SizeConfig.screenHeight * 0.03), // 3%
                    Row(mainAxisAlignment: MainAxisAlignment.center, children: [
                      SocialCard(
                        icon: "assets/icons/google-icon.svg",
                        press: () {},
                      ),
                      SocialCard(
                        icon: "assets/icons/facebook-2.svg",
                        press: () {},
                      ),
                      SocialCard(
                        icon: "assets/icons/twitter.svg",
                        press: () {},
                      )
                    ]),
                    SizedBox(height: getProportionateScreenHeight(15)),
                    Text(    
                      "By continuing you confirm that you agree with our Term and Condition",
                      textAlign: TextAlign.center,
                    ),
                  ],
                ),
              ),
            ),
          ),
        );
      }
    }
    
    // Get Screen Size
    class SizeConfig {
      static MediaQueryData _mediaQueryData;
      static double screenWidth;
      static double screenHeight;
      static double defaultSize;
      static Orientation orientation;
    
      void init(BuildContext context) {
        _mediaQueryData = MediaQuery.of(context);
        screenWidth = _mediaQueryData.size.width;
        screenHeight = _mediaQueryData.size.height;
        orientation = _mediaQueryData.orientation;
      }
    }
    
    // Get the proportionate height as per screen size
    double getProportionateScreenHeight(double inputHeight) {
      double screenHeight = SizeConfig.screenHeight;
      // 812 is the layout height that designer use
      return (inputHeight / 812.0) * screenHeight;
    }
    

    使用SafeArea小部件避免底部导航栏。了解更多有关SafeArea小部件的信息
    单击在大小框上添加高度,如下所示

    class Body extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: SizedBox(
            width: double.infinity,
    
            height: MediaQuery.of(context).size.height. // Add this line
    
            child: Padding(
              padding:
                  EdgeInsets.symmetric(horizontal: getProportionateScreenWidth(20)),
              child: SingleChildScrollView(
                child: Column(
                  children: [
                    Text(
                      "Register Account",
                      style: headingStyle,
                    ),
                    Text(
                      "Complete your details or continue \nwith social media.",
                      textAlign: TextAlign.center,
                    ),
                    SizedBox(height: SizeConfig.screenHeight * 0.04), // 4%
                    SignUpForm(),
                    SizedBox(height: SizeConfig.screenHeight * 0.03), // 3%
                    Row(mainAxisAlignment: MainAxisAlignment.center, children: [
                      SocialCard(
                        icon: "assets/icons/google-icon.svg",
                        press: () {},
                      ),
                      SocialCard(
                        icon: "assets/icons/facebook-2.svg",
                        press: () {},
                      ),
                      SocialCard(
                        icon: "assets/icons/twitter.svg",
                        press: () {},
                      )
                    ]),
                    SizedBox(height: getProportionateScreenHeight(15)),
                    Text(                                <--- HIDDEN FROM VIEW
                      "By continuing you confirm that you agree with our Term and Condition",
                      textAlign: TextAlign.center,
                    ),
                  ],
                ),
              ),
            ),
          ),
        );
      }
    }
    
    类主体扩展了无状态小部件{
    @凌驾
    小部件构建(构建上下文){
    返回安全区(
    孩子:大小盒子(
    宽度:double.infinity,
    高度:MediaQuery.of(context).size.height//添加此行
    孩子:填充(
    衬垫:
    边缘集。对称(水平:GetProtorateTesCreenWidth(20)),
    子:SingleChildScrollView(
    子:列(
    儿童:[
    正文(
    “注册帐户”,
    风格:头型,
    ),
    正文(
    “完成您的详细信息或继续使用社交媒体。”,
    textAlign:textAlign.center,
    ),
    SizeBox(高度:SizeConfig.screenHeight*0.04),//4%
    SignUpForm(),
    SizeBox(高度:SizeConfig.screenHeight*0.03),//3%
    行(mainAxisAlignment:mainAxisAlignment.center,子项:[
    社会信用卡(
    图标:“资产/图标/谷歌图标.svg”,
    按:(){},
    ),
    社会信用卡(
    图标:“资产/图标/facebook-2.svg”,
    按:(){},
    ),
    社会信用卡(
    图标:“资产/icons/twitter.svg”,
    按:(){},
    )
    ]),
    SizedBox(高度:GetControlutesCreenheight(15)),
    
    正文(这解决了部分问题,而不是全部问题。当我使用键盘时,像素溢出问题只能通过使用say
    SingleChildScrollView
    使小部件可滚动来解决。你如何解决这个问题?你能在使用键盘时添加一些溢出问题的屏幕截图吗?如果你检查我的代码,y。)你会发现我已经有了
    SafeArea
    sry,我没有看到