public Widget BulidTopSwiper(List <string> urls) { List <Widget> children = new List <Widget>(); foreach (var item in urls) { Widget it = Image.network(item, fit: BoxFit.fill); children.Add(it); } TransformerPageController controller = new TransformerPageController(initialPage: 0, itemCount: urls.Count); return(new Container( height: 270, width: 375, child: new Stack( children: new List <Widget> { TransformerPageView.children(index: 0, children: children, pageController: controller ), new Align( alignment: Alignment.bottomCenter, child: new Padding( padding: EdgeInsets.only(bottom: 20), child: new PageIndicator(layout: PageIndicatorLayout.WARM, size: 7, activeSize: 7, controller: controller, space: 5.0f, count: urls.Count , color: new Unity.UIWidgets.ui.Color(0xFFEAEAEA), activeColor: new Unity.UIWidgets.ui.Color(0xFF404759)) ) ) } ) )); }
public override void initState() { _transformer = widget.transformer; // int index = widget.index ?? 0; _pageController = widget.pageController; if (_pageController == null) { _pageController = new TransformerPageController( initialPage: widget.index, itemCount: widget.itemCount, loop: widget.loop, reverse: widget.transformer == null ? false : widget.transformer.reverse); } // int initPage = _getRealIndexFromRenderIndex(index); // _pageController = new PageController(initialPage: initPage,viewportFraction: widget.viewportFraction); _fromIndex = _activeIndex = _pageController.initialPage; _controller = getNotifier(); if (_controller != null) { _controller.addListener(onChangeNotifier); } base.initState(); }
public override void didUpdateWidget(StatefulWidget oldWidget) { _transformer = widget.transformer; int index = widget.index; bool created = false; if (_pageController != widget.pageController) { if (widget.pageController != null) { _pageController = widget.pageController; } else { created = true; _pageController = new TransformerPageController( initialPage: widget.index, itemCount: widget.itemCount, loop: widget.loop, reverse: widget.transformer == null ? false : widget.transformer.reverse); } } if (_pageController.getRenderIndexFromRealIndex(_activeIndex) != index) { _fromIndex = _activeIndex = _pageController.initialPage; if (!created) { int initPage = _pageController.getRealIndexFromRenderIndex(index); _pageController.animateToPage(initPage, duration: widget.duration, curve: widget.curve); } } if (_transformer != null) { WidgetsBinding.instance.addPostFrameCallback(_onGetSize); } if (_controller != getNotifier()) { if (_controller != null) { _controller.removeListener(onChangeNotifier); } _controller = getNotifier(); if (_controller != null) { _controller.addListener(onChangeNotifier); } } base.didUpdateWidget(oldWidget); }
public override void initState() { _activeIndex = widget.index; if (_isPageViewLayout()) { _pageController = new TransformerPageController( initialPage: widget.index, loop: widget.loop, itemCount: widget.itemCount, reverse: widget.transformer == null ? false : widget.transformer.reverse, viewportFraction: widget.viewportFraction); } base.initState(); }
public override void didUpdateWidget(StatefulWidget oldWidget) { base.didUpdateWidget(oldWidget); Swiper sp = oldWidget as Swiper; if (_isPageViewLayout() && sp != null) { if (_pageController == null || (widget.index != sp.index || widget.loop != sp.loop || widget.itemCount != sp.itemCount || widget.viewportFraction != sp.viewportFraction || _getReverse(widget) != _getReverse(sp))) { _pageController = new TransformerPageController( initialPage: widget.index, loop: widget.loop, itemCount: widget.itemCount, reverse: _getReverse(widget), viewportFraction: widget.viewportFraction); } } else { //scheduleMicrotask(() => //{ // // So that we have a chance to do `removeListener` in child widgets. // if (_pageController != null) // { // _pageController.dispose(); // _pageController = null; // } //}); } //if (widget.index != null && widget.index != _activeIndex) //{ // _activeIndex = widget.index; //} //TODO:Check widget.index != null or widget.index != 0 if (widget.index != _activeIndex) { _activeIndex = widget.index; } }
public static TransformerPageView children( int index, TimeSpan?duration = null, Curve curve = null, Key key = null, ScrollPhysics physics = null, ValueChanged <int> onPageChanged = null, IndexController controller = null, TransformerPageController pageController = null, PageTransformer transformer = null, List <Widget> children = null, float viewportFraction = 1, bool pageSnapping = true, bool loop = false, Axis scrollDirection = Axis.horizontal ) { return(new TransformerPageView( itemCount: children.Count, itemBuilder: (BuildContext context, int ind) => { return children[ind]; }, pageController: pageController, transformer: transformer, pageSnapping: pageSnapping, key: key, index: index, duration: duration, curve: curve ?? Curves.ease, viewportFraction: viewportFraction, scrollDirection: scrollDirection, physics: physics, onPageChanged: onPageChanged, controller: controller )); }
/// Creates a scrollable list that works page by page using widgets that are /// created on demand. /// /// This constructor is appropriate for page views with a large (or infinite) /// number of children because the builder is called only for those children /// that are actually visible. /// /// Providing a non-null [itemCount] lets the [PageView] compute the maximum /// scroll extent. /// /// [itemBuilder] will be called only with indices greater than or equal to /// zero and less than [itemCount]. public TransformerPageView( int index, Curve curve, ScrollPhysics physics, ValueChanged <int> onPageChanged, IndexController controller, PageTransformer transformer, IndexedWidgetBuilder itemBuilder, TransformerPageController pageController, int itemCount, TimeSpan?duration = null, Key key = null, float viewportFraction = 1, Axis scrollDirection = Axis.horizontal, bool loop = false, bool pageSnapping = true ) : base(key: key) { this.index = index; this.curve = curve == null ? Curves.ease : curve; this.loop = loop; this.scrollDirection = scrollDirection; this.physics = physics; this.onPageChanged = onPageChanged; this.controller = controller; this.transformer = transformer; this.itemBuilder = itemBuilder; this.pageController = pageController; this.itemCount = itemCount; this.viewportFraction = viewportFraction; this.scrollDirection = scrollDirection; this.loop = loop; this.pageSnapping = pageSnapping; this.duration = duration ?? TimeSpan.FromMilliseconds(kDefaultTransactionDuration); }
public override void initState() { controller = new TransformerPageController(itemCount: 4, loop: false, reverse: false); base.initState(); }