flutter - 对齐属性在Flutter的ListView中不起作用

标签 flutter dart

我希望将我的一个菜单项放置在“抽屉菜单”的底部(特别是“注销”,位于菜单的底部)。我正在尝试使用Align小部件,但无法这样做,即使在观看了许多解决方案后仍尝试将其包装在Expanded小部件中,但仍然无法修复它。
这是我的代码:

    drawer: Drawer(

            child: Expanded(
              child: ListView(
                padding:  EdgeInsets.all(0.0),
                children: <Widget>[
                  UserAccountsDrawerHeader(
                    decoration: BoxDecoration(color: Colors.black),
                    accountName: _userName!=null?Text(_userName,):Container(),
                    accountEmail: _userNumber!=null?Text(_userNumber):Container(),
                    currentAccountPicture: CircleAvatar(
                      backgroundColor:
                      Theme.of(context).platform == TargetPlatform.iOS
                          ? Colors.blue
                          : Colors.white,
                      child:_userName!=null? Text(
                        "${_userName[0]}",
                        style: TextStyle(fontSize: 40.0,color: Colors.black),
                      ):Container(),
                    ),
                  ),
                  InkWell(
                    onTap: (){
                      print('Home');
                      Navigator.pop(context);
                    },
                    child: ListTile(
                      title: Text("Home",),
                      leading: Icon(Icons.home,color: Colors.black,),
                    ),
                  ),
                  InkWell(
                    onTap: (){
                      print('My Orders');
                      Navigator.push(context, MaterialPageRoute(
                        builder: (context)=>OrderScreen(Pin:_userPin,Number:_userNumber)
                      ));

                    },
                    child: ListTile(
                      title: Text("My Orders"),
                      leading: Icon(Icons.fastfood,color: Colors.black,),
                    ),
                  ),
                  InkWell(
                    onTap: (){
                      print('My Address');
                

                    },
                    child: ListTile(
                      title: Text("My Address"),
                      leading: Icon(Icons.location_on,color: Colors.black,),
                    ),
                  ),
                  InkWell(
                    onTap: (){
                      print('My Cart');
                      Navigator.pop(context);
                     
                      
                    },
                    child:
                    ListTile(
                      title: Text("My Cart"),
                      leading: Icon(Icons.shopping_cart,color: Colors.black,),
                    ),
                  ),
                  ListTile(
                    title: Text("Help"),
                    leading: Icon(Icons.help,color: Colors.black,),
                  ),
                  Expanded(
                    child: Align(
                      alignment: Alignment.bottomCenter,
                      child: ListTile(
                        title: Text("Logout"), //<-- I want this to be at the bottom.
                        leading: Icon(Icons.exit_to_app,color: Colors.black,),
                      ),
                    ),
                  ),
                ],
              ),
            ),
          ),

最佳答案

只需查看以下示例:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: Text('Sample app'),),
      drawer: Drawer(
        child: Column(
         
          children: <Widget>[
            UserAccountsDrawerHeader(
              decoration: BoxDecoration(color: Colors.black),
              accountName: Text('Username'),
              accountEmail: Text('UserEmail'),
              currentAccountPicture: CircleAvatar(
                backgroundColor:
                    Theme.of(context).platform == TargetPlatform.iOS
                        ? Colors.blue
                        : Colors.white,
                child: Text(
                  "sample name",
                  style: TextStyle(fontSize: 10.0, color: Colors.black),
                ),
              ),
            ),
            InkWell(
              onTap: () {
                print('Home');
                Navigator.pop(context);
              },
              child: ListTile(
                title: Text(
                  "Home",
                ),
                leading: Icon(
                  Icons.home,
                  color: Colors.black,
                ),
              ),
            ),
            InkWell(
              onTap: () {
                print('My Orders');
                /* Navigator.push(context, MaterialPageRoute(
                      builder: (context)=>OrderScreen(Pin:_userPin,Number:_userNumber)
                    )); */
              },
              child: ListTile(
                title: Text("My Orders"),
                leading: Icon(
                  Icons.fastfood,
                  color: Colors.black,
                ),
              ),
            ),
            InkWell(
              onTap: () {
                print('My Address');
              },
              child: ListTile(
                title: Text("My Address"),
                leading: Icon(
                  Icons.location_on,
                  color: Colors.black,
                ),
              ),
            ),
            InkWell(
              onTap: () {
                print('My Cart');
                Navigator.pop(context);
              },
              child: ListTile(
                title: Text("My Cart"),
                leading: Icon(
                  Icons.shopping_cart,
                  color: Colors.black,
                ),
              ),
            ),
            ListTile(
              title: Text("Help"),
              leading: Icon(
                Icons.help,
                color: Colors.black,
              ),
            ),
            Expanded(
              child: Align(
                alignment: Alignment.bottomCenter,
                child: ListTile(
                  title:
                      Text("Logout"), //<-- I want this to be at the bottom.
                  leading: Icon(
                    Icons.exit_to_app,
                    color: Colors.black,
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
      body: Text('Sample'),
    ));
  }
}

根据您的数据进行更改,只需将Listview替换为Column小部件即可。
并且让我知道它是否有效。

关于flutter - 对齐属性在Flutter的ListView中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62979209/

相关文章:

ios - 谷歌登录 Flutter : Error Code -4

flutter - 如何在Firestore中更新此内容?

Flutter 应用程序在构建发布 apk 后到达主屏幕后崩溃

json - 如何在JSON文件中格式化带有三引号的多行字符串?

image - flutter 图像压缩

dart - 在 Dart 中将类静态工厂作为方法参数传递

flutter - 缺少具体实现 'getter Equatable'/props 问题

flutter - 在Flutter中异步加载图片

flutter - 如何将渐变过滤器应用于图标?

android - 如何修复 "No Directionality widget found."问题?