默认情况下,我在主体小部件中采用 ListView() 或 SingleChildScrollView() 。因此,如果内容较少,则会滚动内容。我只想在内容大于屏幕高度时启用滚动。如果内容高度小于屏幕高度,需要禁用滚动。
double? physicalSizeScreenHeight =
ui.window.physicalSize.height / ui.window.devicePixelRatio;
physics: physicalSizeScreenHeight <= 700
? AlwaysScrollableScrollPhysics()
: NeverScrollableScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)
它适用于某些设备,不适用于某些设备,具体取决于屏幕宽度和高度,还取决于分辨率。
不检查“物理”中的任何条件始终或从不,并允许 AlwaysScrollableScrollPhysics(),然后取决于内容高度,需要启用/禁用滚动。
任何建议都将有助于解决这个问题。
我想为 flutter web 重用移动应用程序代码。我已经在所有屏幕的脚手架中使用 AppBar() 和主体小部件进行了编码。现在我为网页采用 400 宽度和中心,除了应用栏之外都很好。
Scaffold(
appBar: this.getAppBarWidget(),
body: Center(
child: Container(
width: kIsWeb ? 400.0 : MediaQuery.of(context).size.width,
child: this.getBodyWidget(),
),
))
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于除网页中的应用栏之外的所有移动和网页屏幕。
如何更改应用栏的宽度以适合宽度 400 ?
如果我使用 Size.fromWidth(400) 会出现错误。
以下代码适用于移动设备和网络。
Scaffold(
body: Center(
child: Container(
width: kIsWeb ? 400.0 : MediaQuery.of(context).size.width,
child: Column(
children: [
this.getCustomAppbarWidget(),
this.getBodyWidget(),
],
),
),
))
Run Code Online (Sandbox Code Playgroud)
请建议我。