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')))),
);
}
