【问题标题】:Flutter Persistent Bottom App Bar to Display Text Only (no nav)Flutter Persistent Bottom App Bar 仅显示文本(无导航)
【发布时间】:2020-10-12 21:38:45
【问题描述】:

我的两页 Flutter 应用需要一个持久的底部应用栏,只显示最多几行文本,没有导航。此外,此底部不应与任何内容重叠;而是限制它,比如顶部的应用栏。 建议表示赞赏。例子超级赞赏。 谢谢!

================@chunhunghan================
谢谢你的建议。不幸的是,底页隐藏了内容:

【问题讨论】:

    标签: flutter dart bottomappbar


    【解决方案1】:

    您可以在下面复制粘贴运行完整代码
    您可以使用 bottomSheet 并将 AppBarContainer 设置为 kToolbarHeight

    bottomSheet: Container(
            height: kToolbarHeight,
            child: AppBar(
              title: Text("bottom sheet"),
            ),
          ),
    

    工作演示

    完整代码

    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 Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Expanded(
                  child: ListView(
                      children:
                          List.generate(100, (i) => Text("line" + i.toString()))),
                ),
              ],
            ),
          ),
          bottomSheet: Container(
            height: kToolbarHeight,
            child: AppBar(
              title: Text("bottom sheet"),
            ),
          ),
        );
      }
    }
    

    【讨论】:

      【解决方案2】:

      建议继续使用bottomNavigationBar,如下所示:

      Widget build(BuildContext context) {
          
          return new Scaffold(
            body: new Center(
              child: new ListView(
               children: List.generate(100, (i) => Text("this is a line" + i.toString()))
              ),
            ),
            bottomNavigationBar:Text(
              "this is some info"
            ) 
          );
        }
      

      在此示例中,您可以看到列表中的所有项目都显示在底部应用栏下方,而不是隐藏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-25
        • 1970-01-01
        • 2021-04-06
        • 2022-12-19
        • 2020-06-17
        • 2019-05-21
        • 2020-09-15
        相关资源
        最近更新 更多