如何在底部屏幕上实现可滚动选项卡

2024-04-15

Newsvoice 在屏幕底部的底部栏顶部有一个可滚动的选项卡。我怎样才能实现这个用户界面? 谢谢。


这是一些使用的示例代码Column定位可滚动的TabBar and a BottomNavigationBar in the bottomNavigationBar的插槽Scaffold。请注意,当您使用 AnimatedCrossFade 选择第二个(“摩托车”)屏幕时,选项卡会消失。

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Navigation Example',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

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

const List<String> tabNames = const<String>[
  'foo', 'bar', 'baz', 'quox', 'quuz', 'corge', 'grault', 'garply', 'waldo'
];

class _MyHomePageState extends State<MyHomePage> {

  int _screen = 0;

  @override
  Widget build(BuildContext context) {
    return new DefaultTabController(
      length: tabNames.length,
      child: new Scaffold(
        appBar: new AppBar(
          title: new Text('Navigation example'),
        ),
        body: new TabBarView(
          children: new List<Widget>.generate(tabNames.length, (int index) {
            switch (_screen) {
              case 0: return new Center(
                child: new Text('First screen, ${tabNames[index]}'),
              );
              case 1: return new Center(
                child: new Text('Second screen'),
              );
            }
          }),
        ),
        bottomNavigationBar: new Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            new AnimatedCrossFade(
              firstChild: new Material(
                color: Theme
                  .of(context)
                  .primaryColor,
                child: new TabBar(
                  isScrollable: true,
                  tabs: new List.generate(tabNames.length, (index) {
                    return new Tab(text: tabNames[index].toUpperCase());
                  }),
                ),
              ),
              secondChild: new Container(),
              crossFadeState: _screen == 0
                              ? CrossFadeState.showFirst
                              : CrossFadeState.showSecond,
              duration: const Duration(milliseconds: 300),
            ),
            new BottomNavigationBar(
              currentIndex: _screen,
              onTap: (int index) {
                setState(() {
                  _screen = index;
                });
              },
              items: [
                new BottomNavigationBarItem(
                  icon: new Icon(Icons.airplanemode_active),
                  title: new Text('Airplane'),
                ),
                new BottomNavigationBarItem(
                  icon: new Icon(Icons.motorcycle),
                  title: new Text('Motorcycle'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在底部屏幕上实现可滚动选项卡 的相关文章

随机推荐

  • 向 UITextView 添加轮廓/描边

    我想将轮廓或描边添加到可编辑的UITextView用户键入的文本 就像模因一样 http t qkme me 3oi5rs jpg http t qkme me 3oi5rs jpg 我必须使用UITextView因为我需要多线支持 我已经
  • 如何使用 ggplot2 在多面图中定义 y 轴中断?

    我必须绘制具有不同范围值的数据 我正在使用 ggplot2 的构面设计和选项facet grid variable scales free 但是 我想设置 y 轴上的中断值 以便对于所有变量 中断都是c 0 max variable 2 m
  • 如何将对象注入到 WCF 验证器类中

    跟进使用依赖注入世界碳基金服务 https stackoverflow com questions 881705 how to inject an object into a wcf service 有没有办法将 DI 用于 WCF验证者
  • 点击时展开 UICollectionView 及其单元格

    我正在尝试制作一个过渡动画 如链接中的演示here https dribbble com shots 2733571 Citadela countries 因此 当我单击该单元格时 它会展开并覆盖整个屏幕 这是我的代码 我不得不承认我对 C
  • Perl DBI fetchall_hashref

    考虑下表 mysql gt select from vCountryStatus CountryName CountryISO Code Status Symbol CurrencyName Brazil BR 55 LIVE BRL Br
  • 如何通过 django rest api 中的一个序列化器发布多个模型数据

    我有两个模型 Contact and User class Contact models Model name models CharField max length 50 blank True status models BooleanF
  • 如何将类作为 ASP.NET MVC htmlAttributes 的键值对传递?

    我想使用 Html TextBox FullName null new 在 ASP NET MVC 中为我的输入框传递 html 输入类属性class 灰色输入 但我想我可以使用 class 关键字 我怎样才能绕过这个问题 是的 您需要使用
  • 在 MacOS 上从源代码构建 gdb

    我正在尝试在 Apple M1 MacBook 上安装交叉编译的 gdb 我下载了 gdb 11 1 并执行了以下操作 tmp src gdb 11 1 configure enable targets all make sudo make
  • 在 JavaScript 正则表达式中链接多个正向前瞻

    我是学习正则表达式的新手 我遇到了这个答案 https stackoverflow com questions 14850553 javascript regex for password containing at least 8 cha
  • Python中使用递归获取列表的长度

    我正在尝试计算列表的长度 当我在cmd上运行它时 我得到 RuntimeError maximum recursion depth exceeded in comparison 我不认为我的代码有什么问题 def len recursive
  • 捕获不带 \n 的输入

    我正在终端中制作一个简单的 2d 游戏 我一直想知道如何获得标准输入而不必返回 因此 用户不必按 w n n 用于返回 而只需按 w 即可前进 scanf gets 和 getchar 无法做到这一点 但我以前见过在 Vi 等程序中做到过
  • 如何使用 Invoke-Sqlcmd 连接到 SQL Server LocalDB?

    I have sqlcmd exe来自 SQL Server 2008 和 SQL Server 2012 PS C gt Get Command sqlcmd exe Definition C Program Files Microsof
  • 使用散景滑块滑动图像

    我试图在滑块的帮助下无缝地传达大量科学数据 我从 Bokeh 开始 对 javascript 几乎一无所知 我尝试设置第一种方法来滑动两个图像 但我无法刷新图像 假设我的文件夹中有 1 png 和 2 png from bokeh io i
  • 在 Visual Studio 中编译时如何将 DLL 保存在不同的文件夹中?

    假设我有一个窗口表格 控制台应用程序 C 与一些项目外部参考以及对同一解决方案中其他类库项目的引用 当我构建窗口形式项目 我希望引用的库存储在不同的位置 eg bin 发布 库 并且与 exe 不在同一文件夹中 可以做吗 您的问题有两部分
  • python 3 替代 dircache?

    在我重新发明轮子之前 谁能告诉我是否有单行语句的直接 或半直接 替代 allfiles dircache listdir 一条线 不 但你可以这样做 global cache def cached listdir path res glob
  • PHP 扰乱了 HTML 设计并在 HTML 之外显示结果

    我不确定为什么会发生这种情况 我在 HTML 或其他任何方面都不是 那么好 我主要假设我的问题是如何显示结果 任何提示 帮助 或建议都非常感谢 该脚本基本上是一个简单的 FoodManagement 类 它管理食物 哈哈 这是代码 inde
  • 未定义变量 - Switch 语句在 PHP 中是否具有作用域

    大家好 这是我第一次发帖 认为这会很好 因为我完全陷入困境 据我了解 PHP 中的 switch 和 If else 语句没有变量范围 我的问题是我有一个 CSV 文件 示例文件 其中包含大约 5 行值 我需要将其放入 mySQL DB 表
  • 从文件中动态读取资源

    我一直使用 resx 文件作为静态字符串 以便有一个中心位置来更改它们 问题是在项目构建和部署后我无法更改它们 我想在部署后更改一些字符串 而不重新启动进程 因此 config 文件已退出 可以编写有效解析配置文件 XML JSON YAM
  • 什么可能导致 PUSHD 失败?

    我有一个很棒的大脚本 完全依赖于 PUSHD 然而当我打字时突然pushd server1 dir1我越来越 C Documents and Settings userNameHere gt pushd server1 dir1 CMD d
  • 如何在底部屏幕上实现可滚动选项卡

    Newsvoice 在屏幕底部的底部栏顶部有一个可滚动的选项卡 我怎样才能实现这个用户界面 谢谢 这是一些使用的示例代码Column定位可滚动的TabBar and a BottomNavigationBar in the bottomNa