小编yel*_*ray的帖子

如何使PageView仅针对当前页面使用不同的页面大小

我想使用PageView的原因是因为它可以在释放拖动时粘在页面上。但我不知道如何实现如下所示的屏幕:

在此输入图像描述

我想让当前选中的页面显示较大的尺寸,而其他页面显示较小的尺寸。最直接的方法是将viewportFraction(设置为 0.15)。但之后我发现页面需要不同的值viewportFraction

在此输入图像描述

您可以看到,我希望页面之间的间距相等,但只有中间的页面显示得更大。这可以通过 PageView Widget 来实现吗?或者有人有其他解决方法可以达到相同的结果吗?

如果可能的话,我还想添加GestureDetector到每个页面(可以动画到目标页面)

dart flutter flutter-layout

7
推荐指数
1
解决办法
9884
查看次数

如何使用不同的控制器同步两个或多个PageView

我有 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)

controller flutter

3
推荐指数
1
解决办法
2829
查看次数

有没有一种简单的方法可以在 Flutter 中尽可能多地添加 Const?

我在这里阅读了关于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)

performance dart flutter

1
推荐指数
2
解决办法
600
查看次数

标签 统计

flutter ×3

dart ×2

controller ×1

flutter-layout ×1

performance ×1