我想使用PageView的原因是因为它可以在释放拖动时粘在页面上。但我不知道如何实现如下所示的屏幕:
我想让当前选中的页面显示较大的尺寸,而其他页面显示较小的尺寸。最直接的方法是将viewportFraction(设置为 0.15)。但之后我发现页面需要不同的值viewportFraction:
您可以看到,我希望页面之间的间距相等,但只有中间的页面显示得更大。这可以通过 PageView Widget 来实现吗?或者有人有其他解决方法可以达到相同的结果吗?
如果可能的话,我还想添加GestureDetector到每个页面(可以动画到目标页面)
我有 2 个具有不同 viewportFraction 的 PageView。有没有办法滚动其中一个 PageView,而另一个 PageView 则在同一页面或偏移上滚动?
另外问一下,是否可以在代码中控制PageView到偏移量的中间?
class MyPageControllers extends StatefulWidget {
@override
_MyPageControllersState createState() => _MyPageControllersState();
}
class _MyPageControllersState extends State<MyPageControllers> {
PageController _controller1;
PageController _controller2;
Widget _itemBuilder(BuildContext context, int index) => Container(
color: Colors.primaries[index % Colors.primaries.length],
child: Center(
child: Text(
index.toString(),
style: TextStyle(color: Colors.white, fontSize: 60),
),
),
);
@override
void initState() {
super.initState();
_controller1 = PageController(viewportFraction: 0.8);
_controller2 = PageController(viewportFraction: 0.5);
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: PageView.builder( …Run Code Online (Sandbox Code Playgroud) 我在这里阅读了关于Final 和 Const的文章。我还看到Flutter团队的许多示例代码尽可能多地使用const(只需阅读包 river_pod 中的todos 列表示例),以及一些关于编译时常量小部件如何提高性能的文章(像这样)。
有没有什么简单的方法可以让 IDE 插件/lint 尽可能多地添加 const Widget/Variable?或者给出一些提示,比如This Widget/Variable' is better to use with const。
我在这里检查了lint 包并阅读了Effective Dart:Style,但没有看到任何关于它的信息。
感谢帮助!
我添加了一些示例案例:
ListView(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 40), // here
children: [ ...
const SizedBox(height: 42), //here
const Image( //here
width: 100,
height: 100,
image: AssetImage('assets/logo.png'),
)
...
Run Code Online (Sandbox Code Playgroud)
甚至一个班级
Container(
child: const Toolbar(), //here
...
class Toolbar extends HookWidget {
const …Run Code Online (Sandbox Code Playgroud)