IT评测·应用市场-qidao123.com

标题: flutter鸿蒙版本通过底部导航栏的实现熟悉架构及语法 [打印本页]

作者: 没腿的鸟    时间: 2024-10-11 05:18
标题: flutter鸿蒙版本通过底部导航栏的实现熟悉架构及语法
目次

写在前面
1. 引入 Flutter 包
2. 应用程序的入口
3. 创建 MyApp 组件
4. 创建 HomePage 组件
5. 实近况态类
状态变量
页面列表
点击变乱处置惩罚
6. 构建用户界面
Scaffold 布局
顶部应用栏
显示页面
底部导航栏
7. 完整代码
写在最后


写在前面

在这篇博客中,我们将深入分析一个 Flutter 应用的完整代码,该应用实现了一个底部导航栏,允许用户在不同页面之间切换。我们将逐行讲解代码,帮助大家理解 Flutter 的结构、状态管理以及组件之间的交互。
1. 引入 Flutter 包

  1. import 'package:flutter/material.dart';
复制代码
这一行代码导入了 Flutter 的核心 Material Design 库。这个库为我们提供了各种丰富的 UI 组件,允许我们构建出具有精良用户体验的应用界面。
2. 应用程序的入口

  1. void main() {
  2.   runApp(MyApp());
  3. }
复制代码
main() 函数是 Dart 应用程序的入口。在这里,我们调用 runApp() 方法来启动 Flutter 应用,并传入 MyApp 组件作为根组件。runApp() 方法会将传入的 Widget 加载到屏幕上。
3. 创建 MyApp 组件

  1. class MyApp extends StatelessWidget { ///无状态的视图(非响应式)
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return MaterialApp(
  5.       title: 'Flutter Bottom Navigation',
  6.       theme: ThemeData(
  7.         primarySwatch: Colors.blue,
  8.       ),
  9.       home: HomePage(),
  10.     );
  11.   }
  12. }
复制代码

4. 创建 HomePage 组件

  1. class HomePage extends StatefulWidget {
  2.   ///有状态的视图(响应式)
  3.   @override
  4.   _HomePageState createState() => _HomePageState();
  5. }
复制代码

5. 实近况态类

  1. class _HomePageState extends State<HomePage> {
  2.   int _selectedIndex = 0; // 当前选中的底部导航项
  3.   // 页面列表
  4.   List<Widget> _pages = [
  5.     Center(child: Text('Home Page')),
  6.     Center(child: Text('Search Page')),
  7.     Center(child: Text('Profile Page')),
  8.   ];
  9.   void _onItemTapped(int index) {
  10.     setState(() {
  11.       _selectedIndex = index; // 更新选中的索引
  12.     });
  13.   }
复制代码
状态变量


页面列表


每个页面都是一个 Center 小部件,里面包罗一个 Text 小部件,表示当前页面的名称。
点击变乱处置惩罚


6. 构建用户界面

  1. @override
  2. Widget build(BuildContext context) {
  3.   return Scaffold(
  4.     appBar: AppBar(
  5.       title: Text('Flutter Bottom Navigation'),
  6.     ),
  7.     body: _pages[_selectedIndex], // 显示当前选中的页面
  8.     bottomNavigationBar: BottomNavigationBar(
  9.       items: const <BottomNavigationBarItem>[
  10.         BottomNavigationBarItem(
  11.           icon: Icon(Icons.home),
  12.           label: 'Home',
  13.         ),
  14.         BottomNavigationBarItem(
  15.           icon: Icon(Icons.search),
  16.           label: 'Search',
  17.         ),
  18.         BottomNavigationBarItem(
  19.           icon: Icon(Icons.person),
  20.           label: 'Profile',
  21.         ),
  22.       ],
  23.       currentIndex: _selectedIndex, // 当前选中的索引
  24.       selectedItemColor: Colors.blue,
  25.       onTap: _onItemTapped, // 点击事件
  26.     ),
  27.   );
  28. }
复制代码
Scaffold 布局


顶部应用栏


显示页面


底部导航栏


7. 完整代码

下面是整段代码的完整展示,方便您对照:
  1. import 'package:flutter/material.dart';
  2. void main() {
  3.   runApp(MyApp());
  4. }
  5. class MyApp extends StatelessWidget {  ///无状态的视图(非响应式)  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Bottom Navigation',      theme: ThemeData(        primarySwatch: Colors.blue,      ),      home: HomePage(),    );  }}class HomePage extends StatefulWidget {
  6.   ///有状态的视图(响应式)
  7.   @override
  8.   _HomePageState createState() => _HomePageState();
  9. }
  10. class _HomePageState extends State<HomePage> {
  11.   int _selectedIndex = 0; // 当前选中的底部导航项
  12.   // 页面列表
  13.   List<Widget> _pages = [
  14.     Center(child: Text('Home Page')),
  15.     Center(child: Text('Search Page')),
  16.     Center(child: Text('Profile Page')),
  17.   ];
  18.   void _onItemTapped(int index) {
  19.     setState(() {
  20.       _selectedIndex = index; // 更新选中的索引
  21.     });
  22.   }
  23.   @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('Flutter Bottom Navigation'),      ),      body: _pages[_selectedIndex], // 显示当前选中的页面      bottomNavigationBar: BottomNavigationBar(        items: const <BottomNavigationBarItem>[          BottomNavigationBarItem(            icon: Icon(Icons.home),            label: 'Home',          ),          BottomNavigationBarItem(            icon: Icon(Icons.search),            label: 'Search',          ),          BottomNavigationBarItem(            icon: Icon(Icons.person),            label: 'Profile',          ),        ],        currentIndex: _selectedIndex, // 当前选中的索引        selectedItemColor: Colors.blue,        onTap: _onItemTapped, // 点击变乱      ),    );  }}
复制代码
写在最后

通过这段代码,我们构建了一个根本的 Flutter 应用,包罗了底部导航栏,可以在不同页面之间举行切换。该示例展示了 Flutter 的状态管理机制、组件结构以及如何使用 Material Design 组件构建用户界面。
盼望本文可以大概帮助您更好地理解 Flutter 开辟!如果您有任何问题或发起,欢迎与我交流。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4