中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

flutter怎么實現卡片切換效果

小億
184
2024-01-11 16:44:23
欄目: 編程語言

在Flutter中實現卡片切換效果可以通過使用PageView組件來實現。以下是一個簡單的示例代碼:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CardSwitcher(),
    );
  }
}

class CardSwitcher extends StatefulWidget {
  @override
  _CardSwitcherState createState() => _CardSwitcherState();
}

class _CardSwitcherState extends State<CardSwitcher> {
  PageController _pageController;
  int _currentIndex = 0;

  @override
  void initState() {
    _pageController = PageController(initialPage: _currentIndex);
    super.initState();
  }

  @override
  void dispose() {
    _pageController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Card Switcher'),
      ),
      body: PageView(
        controller: _pageController,
        onPageChanged: (int index) {
          setState(() {
            _currentIndex = index;
          });
        },
        children: [
          Card(
            color: Colors.red,
            child: Center(
              child: Text('Card 1',
                  style: TextStyle(fontSize: 24, color: Colors.white)),
            ),
          ),
          Card(
            color: Colors.blue,
            child: Center(
              child: Text('Card 2',
                  style: TextStyle(fontSize: 24, color: Colors.white)),
            ),
          ),
          Card(
            color: Colors.green,
            child: Center(
              child: Text('Card 3',
                  style: TextStyle(fontSize: 24, color: Colors.white)),
            ),
          ),
        ],
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentIndex,
        onTap: (int index) {
          setState(() {
            _currentIndex = index;
            _pageController.animateToPage(
              _currentIndex,
              duration: Duration(milliseconds: 500),
              curve: Curves.ease,
            );
          });
        },
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Card 1',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.business),
            label: 'Card 2',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.school),
            label: 'Card 3',
          ),
        ],
      ),
    );
  }
}

在上面的示例代碼中,我們使用PageView組件來展示卡片,并通過PageController來控制卡片的切換。通過設置onPageChanged回調函數,我們可以在切換卡片時更新底部導航欄的當前選中項。通過點擊底部導航欄的選項,我們可以觸發動畫切換到對應的卡片。

0
永吉县| 府谷县| 庆阳市| 阳泉市| 沈丘县| 罗田县| 砀山县| 克拉玛依市| 伊宁市| 拉萨市| 梨树县| 宣恩县| 东城区| 台前县| 台江县| 德令哈市| 沂源县| 湟中县| 楚雄市| 天津市| 泸西县| 宁远县| 鄂托克前旗| 屯门区| 苏尼特左旗| 郎溪县| 雅江县| 丹凤县| 黔江区| 巴南区| 沈丘县| 陵川县| 平昌县| 宁国市| 彰化县| 东兰县| 明光市| 沙雅县| 乡城县| 壶关县| 永川市|