在寫flutter頁面布局的時(shí)候鲫寄,有時(shí)候會(huì)遇到這樣的功能,彈框中有一個(gè)輸入框疯淫,輸入框位置靠下地来,點(diǎn)擊輸入框時(shí)頁面沒有跟隨一起上移,就會(huì)擋住部分頁面熙掺,如下所示:
IMG_0088.PNG
如果想要頁面跟隨鍵盤一起上移未斑,需要改一下頁面的整體布局,采用這樣的嵌套:(如果最外層不是Scaffold的話滾動(dòng)視圖不會(huì)生效)
Scaffold-->SingleChildScrollView-->Widget
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.transparent,
body: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
child: Container(
margin: EdgeInsets.only(top: ScreenHelper.topMargin),
width: ScreenHelper.screenWidth,
height: ScreenHelper.screenHeight - ScreenHelper.topMargin,
child: GestureContainer(
onTap: onTapBg,
child: Stack(
children: [
///頁面細(xì)節(jié)
],
),
),
),
),
);
}
ScrollPhysics
上面用到了滾動(dòng)視圖币绩,簡(jiǎn)單提一下里面的physics 屬性颂碧。
在 Flutter 官方的介紹中,ScrollPhysics 的作用是 確定可滾動(dòng)控件的物理特性类浪, 常見的有以下四大金剛,可根據(jù)實(shí)際情況選擇使用:
- BouncingScrollPhysics :允許滾動(dòng)超出邊界肌似,但之后內(nèi)容會(huì)反彈回來费就。
- ClampingScrollPhysics : 防止?jié)L動(dòng)超出邊界,夾住 川队。
- AlwaysScrollableScrollPhysics :始終響應(yīng)用戶的滾動(dòng)力细。
- NeverScrollableScrollPhysics :不響應(yīng)用戶的滾動(dòng)。