亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
辽宁省| 六盘水市| 泰来县| 阿巴嘎旗| 铜鼓县| 安岳县| 台中市| 萝北县| 阿瓦提县| 黄浦区| 波密县| 建昌县| 新乡市| 郴州市| 惠东县| 公安县| 文登市| 木兰县| 行唐县| 乌兰察布市| 永平县| 慈利县| 安达市| 中卫市| 铜鼓县| 城市| 淮阳县| 穆棱市| 开阳县| 凤阳县| 屯门区| 双辽市| 鹤峰县| 赤水市| 克拉玛依市| 邢台市| 揭西县| 罗甸县| 本溪| 临城县| 马边|