Flutter PageView анимировать viewportFraction

Как применить анимацию к viewportFraction?

import 'dart:math';

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'Test',
        theme: ThemeData(),
        home: const Test(),
      );
}

class Test extends StatefulWidget {
  const Test({Key? key}) : super(key: key);

  @override
  State<Test> createState() => _TestState();
}

class _TestState extends State<Test> {
  bool _active = false;
  PageController _pageController = PageController(viewportFraction: 1 / 3);

  @override
  Widget build(BuildContext context) => PageView.builder(
        padEnds: false,
        controller: _pageController,
        itemCount: 10,
        itemBuilder: (context, index) => GestureDetector(
            onTap: () {
              setState(() {
                _active = !_active;
                _pageController =
                    PageController(viewportFraction: _active ? .85 : 1 / 3);
              });
            },
            child: Container(
                color: Color((Random().nextDouble() * 0xFFFFFF).toInt())
                    .withOpacity(1),
                child: Center(child: Text('$index')))),
      );
}

Ответы (0 шт):