i want to apply my custom physics to pageview if i am changing page by swiping by fingers it’s working but if i am changeing page by pageviewcontroller.nextPage() or pageviewcontroller.previousPage() my custom physics not applying to pageview
custom physics :
` import ‘package:flutter/cupertino.dart’;
class CustomPageViewScrollPhysics extends ScrollPhysics {
const CustomPageViewScrollPhysics({super.parent});
@override
CustomPageViewScrollPhysics applyTo(ScrollPhysics? ancestor) {
return CustomPageViewScrollPhysics(parent: buildParent(ancestor)!);
}
@override
SpringDescription get spring => const SpringDescription(
mass: 10,
stiffness: 200,
damping: 1,
);
}`
add physics to page view :
`@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: double.infinity,
decoration: BoxDecoration(gradient: kBackgroundGradient),
child: SafeArea(
child: PageView(
physics: const CustomPageViewScrollPhysics(),
controller: context
.read<OnBoardingViewModelCubit>()
.pageViewController,
// physics: const NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
children: const [
OnBoardingFirstPageView(),
OnBoardingSecondPageView(),
OnBoardingThirdPageView(),
OnboardingFourthPageView(),
],
),
)));
}`
and changeing page like this :
` /// reverse onBoarding page
void showPreviousPage() {
pageViewController
.previousPage(
duration: const Duration(milliseconds: 300), curve: Curves.linear)
.then((value) => emit(state.copyWith(
currentOnBoardingPage: pageViewController.page!.toInt())));
}
/// Forward onBoarding page
void showNextPage() {
pageViewController
.nextPage(
duration: const Duration(milliseconds: 300), curve: Curves.linear)
.then((value) => emit(state.copyWith(
currentOnBoardingPage: pageViewController.page!.toInt())));
}
`
New contributor
devjc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.