首页 > 其他分享 >Flutter 用PageView实现轮播

Flutter 用PageView实现轮播

时间:2023-12-19 16:22:34浏览次数:24  
标签:index PageView Container 轮播 color Colors child return Flutter

import 'package:flutter/material.dart';

class PageSwiper extends StatefulWidget {
  const PageSwiper({super.key});

  @override
  State<PageSwiper> createState() => _PageSwiperState();
}

class _PageSwiperState extends State<PageSwiper> {
  List<Color> colorList = [
    Colors.cyan,
    Colors.pink,
    Colors.indigo,
  ];
  int _index = 0;
  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Container(
          width: double.infinity,
          height: 200,
          color: Colors.white,
          child: PageView.builder(
            onPageChanged: (index) {
              setState(() {
                _index = index % 3;
              });
            },
            itemBuilder: (context, index) {
              return Container(
                color: colorList[index % 3],
                child: Center(
                  child: Text(
                    (index % 3 + 1).toString(),
                    style: const TextStyle(
                      color: Colors.white,
                      decoration: TextDecoration.none,
                    ),
                  ),
                ),
              );
            },
          ),
        ),
        Material(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: List.generate(3, (index) {
              return Container(
                width: 10,
                height: 10,
                margin: EdgeInsets.all(5),
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(5),
                  color: index == _index ? Colors.black54 : Colors.black26,
                ),
              );
            }),
          ),
        )
      ],
    );
  }
}

标签:index,PageView,Container,轮播,color,Colors,child,return,Flutter
From: https://www.cnblogs.com/angelwgh/p/17914068.html

相关文章

  • flutter去除隐藏标题栏
    使用 SystemChrome 类来控制系统UI元素的显示和隐藏import'package:flutter/material.dart';import'package:flutter/services.dart';voidmain(){runApp(MyApp());}classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContextco......
  • Flutter Dialog Toast 弹窗
    AlertDialogshowDialog(barrierDismissible,//点击遮罩背景是否关闭弹窗context:context,builder:(context){returnAlertDialog(title:constText('Alert弹窗'),content:constText('Alert弹窗内容'),actions:[TextBu......
  • flutter中去除导航栏与状态栏
    方法一SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays:[SystemUiOverlay.bottom]);//隐藏状态栏上方黑边SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,overlays:[SystemUiOverlay.top]);//隐藏导航栏SystemChrome.setEnable......
  • flutter杂知识点
    child和children用于在一个容器小部件(如Container、Column、Row等)中放置一个或多个子小部件1.child属性用于容器只包含一个子小部件的情况;2.children属性用于容器包含多个子小部件的情况。Center小部件(居中、定位、多个方向上居中)Center小部件用于将其子小部件放置在父容器的......
  • Java、Kotlin、Flutter、HarmonyOS基本数据类型
    一.Java数据类型基本数据类型整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)1.1整数类型整型是Java中最基本的数据类型之一。它可以用来存储整数值,包括正数、负数和0。Java中的整型有四种类型:byte、short、int和long。byte:占用1个字节,范围从-128......
  • flutter屏幕适配方案
    使用MediaQuery和比例因子优点:使用简单,可以处理大多数情况下的屏幕适配需求。缺点:需要手动计算比例因子,并且随着UI元素变得更加复杂和层次化(例如多层次列表或动画效果),使用此方法可能会变得更加困难。import'package:flutter/material.dart';classMyAppextendsStatelessW......
  • flutter中显示年月日、星期与时间
    代码import'package:flutter/material.dart';import'package:intl/intl.dart';import'dart:async';import'package:intl/date_symbol_data_local.dart';//添加此行classDateWidgetextendsStatefulWidget{@override_......
  • flutter better_player 增加投屏按钮
    better_player播放器默认不可以修改UI需要增加投屏按钮则需要自定义UI但是自定义UI需要布局有需要定义手势动作还需要监听播放事件有没可能服用原来的一切仅仅增加一个投屏按钮呢?答案是肯定的第一步设置主题默认安卓和IOS我们设置自定义BetterPlayerControlsC......
  • Flutter使用SharedPreferences示例
    SharedPreferencesAndroid原生开发经常会用SharedPreferences来保存一些设置,Flutter用什么来保存这些设置呢?在Flutter中,你可以使用shared_preferences插件来实现类似Android原生开发中的SharedPreferences功能,用于在应用程序中保存和检索持久化的键值对。具体使用首先,在你的Fl......
  • flutter最新封装Dio
    import'dart:convert';import'package:becoin/Routers/Routes.dart';import'package:common_utils/common_utils.dart';import'package:dio/dio.dart';import'package:flutter/cupertino.dart';import'pac......