flutter - 扑。如何使容器比屏幕宽?
问题描述
我正在尝试为页面控制器创建视差背景。为此,我需要创建一个比屏幕更宽的背景图像。我把它放在这样的容器中:
@override
Widget build(BuildContext context) {
return Material(
child: Stack(
children: [
Container(
width: 4000,
height: 250,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/pizza_bg.png'),
fit: BoxFit.cover,
repeat: ImageRepeat.noRepeat
)
)
),
],
),
);
}
但问题是,无论我指定什么宽度,容器(当然还有图像)永远不会比屏幕宽。有可能吗?ps 我尝试使用 SizedBox 和 AspectRatio 小部件,它们都给出相同的结果
解决方案
试试这个,作为一个选项
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(
children: [
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Container(
width: 4000,
height: 250,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/pizza_bg.png'),
fit: BoxFit.cover,
repeat: ImageRepeat.noRepeat,
),
),
),
),
],
),
),
);
}
}
您还可以禁用用户滚动并通过滚动控制器管理滚动位置
SingleChildScrollView(
scrollDirection: Axis.horizontal,
physics: const NeverScrollableScrollPhysics(),
controller: controller, // your ScrollController
child: Container(
width: 4000,
height: 250,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('images/pizza_bg.png'),
fit: BoxFit.cover,
repeat: ImageRepeat.noRepeat,
),
),
),
),
推荐阅读
- sql - SELECT 语句作为 INSERT 参数以及其他参数
- python-3.x - 无法引用 xml 文件的元素
- android - 来自 Google Play 的通知 || 恶意行为或用户数据政策 || 意图重定向
- javascript - 找不到该类的标签
- hyperledger - 无法在 ubuntu 20.04 中安装 indy-sdk
- java - 使用 jcraft JSch 在 Java 中进行 SSH 密码身份验证失败并显示“Auth fail”,但命令行“ssh”有效
- html - 如何实现3行的DIV,顶行是固定大小的内容,中间行是可滚动的div,底行是状态栏
- ag-grid - 在 ag-grid 中为 Group 传递自定义标题渲染器
- python - 如何在 Windows 中通过“SYSTEM”用户执行 python subprocess.Popen()
- firebase - Firebase RTDB 在关键字列表中搜索关键字