0
votes

Pied de pied de tiroir

J'ai un peu de problèmes avec le tiroir, j'ai cherché sur la pile une solution pour cela, et j'ai trouvé une solution, mais après l'avoir essayé, cela ne fonctionnait pas pour moi! :) L'idée est que je veux avoir des articles dans des tiroirs affichés à la toute fin de la fin! :)

Drawer(
    child: Container(
      decoration: BoxDecoration(color: Color(0xFF0098c2)),
      child: ListView(
        children: <Widget>[
          ListTile(
            title: Text(
              'Dealer',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.person,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => dealerBuilder()));
            },
          ),
          ListTile(
            title: Text(
              'Shuffler',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.shuffle,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => shufflerBuilder()));
            },
          ),
          ListTile(
            title: Text(
              'Mistakes',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.info_outline,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => mistakePage()));
            },
          ),
          ListTile(
            title: Text(
              'Important links',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.border_color,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => importantLinks()));
            },
          ),
          Container(
              child: Align(
                  alignment: FractionalOffset.bottomCenter,
                  child: Column(
                    children: <Widget>[
                      Divider(),
                      ListTile(
                          leading: Icon(Icons.settings),
                          title: Text('Facebook')),
                      ListTile(
                          leading: Icon(Icons.help),
                          title: Text('Instagram'))
                    ],
                  ))),
        ],
      ),
    ),
  ),


0 commentaires

3 Réponses :


0
votes

Essayez ceci:

Drawer(
    child: Container(
      decoration: BoxDecoration(color: Color(0xFF0098c2)),
      child: ListView(
        children: <Widget>[
          ListTile(
            title: Text(
              'Dealer',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.person,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => dealerBuilder()));
            },
          ),
          ListTile(
            title: Text(
              'Shuffler',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.shuffle,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => shufflerBuilder()));
            },
          ),
          ListTile(
            title: Text(
              'Mistakes',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.info_outline,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.pop(context);
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => mistakePage()));
            },
          ),
          ListTile(
            title: Text(
              'Important links',
              style: TextStyle(fontSize: 18.0, color: Colors.white),
            ),
            leading: Icon(
              Icons.border_color,
              size: 20.0,
              color: Colors.white,
            ),
            onTap: () {
              Navigator.of(context).push(new MaterialPageRoute(
                  builder: (context) => importantLinks()));
            },
          ),
          Expanded(),
          Container(
              child: Align(
                  alignment: FractionalOffset.bottomCenter,
                  child: Column(
                    children: <Widget>[
                      Divider(),
                      ListTile(
                          leading: Icon(Icons.settings),
                          title: Text('Facebook')),
                      ListTile(
                          leading: Icon(Icons.help),
                          title: Text('Instagram'))
                    ],
                  ))),
        ],
      ),
    ),
  ),


1 commentaires

Cela ne fonctionnera pas car il ne fonctionnera pas comme étant élargi d'essayer de prendre autant d'espace que possible et de la répertorie pour lui donner une hauteur infinie.



1
votes

Voici un moyen de le faire

Code: xxx

à l'aide de LayoutAbuilder , Contraindbox et intransichétight Vous allez pouvoir utiliser développé même dans un ScrollView et gardez votre page de page d'image en bas. Il vous permet d'avoir une mise en page réactive sur n'importe quel écran de téléphone.

résultat d'image: Entrez la description de l'image ici

Code de test complet utilisé xxx


0 commentaires

4
votes

Vous pouvez copier Coller Run Code complet ci-dessous
Vous pouvez remplacer listview code> avec colonne code> et envelopper le premier groupe avec colonne expansé code> xxx pré>

Démo de travail P >

 Entrez la description de l'image ici p>

Code complet P>

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        drawer: Drawer(
          child: Container(
            decoration: BoxDecoration(color: Color(0xFF0098c2)),
            child: Column(
              children: <Widget>[
                Expanded(
                  child: Column(children: <Widget>[
                    ListTile(
                      title: Text(
                        'Dealer',
                        style: TextStyle(fontSize: 18.0, color: Colors.white),
                      ),
                      leading: Icon(
                        Icons.person,
                        size: 20.0,
                        color: Colors.white,
                      ),
                      onTap: () {
                        /* Navigator.pop(context);
                      Navigator.of(context).push(new MaterialPageRoute(
                          builder: (context) => dealerBuilder()));*/
                      },
                    ),
                    ListTile(
                      title: Text(
                        'Shuffler',
                        style: TextStyle(fontSize: 18.0, color: Colors.white),
                      ),
                      leading: Icon(
                        Icons.shuffle,
                        size: 20.0,
                        color: Colors.white,
                      ),
                      onTap: () {
                        /*Navigator.pop(context);
                      Navigator.of(context).push(new MaterialPageRoute(
                          builder: (context) => shufflerBuilder()));*/
                      },
                    ),
                    ListTile(
                      title: Text(
                        'Mistakes',
                        style: TextStyle(fontSize: 18.0, color: Colors.white),
                      ),
                      leading: Icon(
                        Icons.info_outline,
                        size: 20.0,
                        color: Colors.white,
                      ),
                      onTap: () {
                        /* Navigator.pop(context);
                      Navigator.of(context).push(new MaterialPageRoute(
                          builder: (context) => mistakePage()));*/
                      },
                    ),
                    ListTile(
                      title: Text(
                        'Important links',
                        style: TextStyle(fontSize: 18.0, color: Colors.white),
                      ),
                      leading: Icon(
                        Icons.border_color,
                        size: 20.0,
                        color: Colors.white,
                      ),
                      onTap: () {
                        /*Navigator.of(context).push(new MaterialPageRoute(
                          builder: (context) => importantLinks()));*/
                      },
                    ),
                  ]),
                ),
                Container(
                    child: Align(
                        alignment: FractionalOffset.bottomCenter,
                        child: Column(
                          children: <Widget>[
                            Divider(),
                            ListTile(
                                leading: Icon(Icons.settings),
                                title: Text('Facebook')),
                            ListTile(
                                leading: Icon(Icons.help),
                                title: Text('Instagram'))
                          ],
                        ))),
              ],
            ),
          ),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'You have pushed the button this many times:',
              ),
              Text(
                '$_counter',
                style: Theme.of(context).textTheme.headline4,
              ),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: _incrementCounter,
          tooltip: 'Increment',
          child: Icon(Icons.add),
        ),
      ),
    );
  }
}


1 commentaires

Votre solution est bonne mais ce n'est pas complètement réactif. Selon la taille de l'écran de téléphone et le numéro de listtile , vous pouvez obtenir un débordement.