小编Ens*_*ado的帖子

Go路由器:使用GoRoute和ShellRoute

使用 GoRoute 和 ShellRoute 处理路由的最佳方法是什么?

我有3个屏幕。设置 - 显示全屏 A - 显示底部导航(用带壳路由包裹) B - 显示底部导航(用带壳路由包裹)

我在此配置中遇到的唯一问题是当我进入“设置”屏幕时缺少后退按钮。我该如何修复它?

final goRouter = GoRouter(
  initialLocation: '/a',
  navigatorKey: _rootNavigatorKey,
  routes: [
    GoRoute( // = Do not show Bottom Navigation, just a full screen
      path: '/settings',
      pageBuilder: (context, state) => const NoTransitionPage(
        child: SettingsPage(),
      ),
    ),
    ShellRoute( // ShellRoute = Show Bottom Navigation
      navigatorKey: _shellNavigatorKey,
      builder: (context, state, child) {
        return ScaffoldWithBottomNavigation(
          tabs: tabs,
          child: child,
        );
      },
      routes: [
        GoRoute( 
          path: '/a',
          pageBuilder: (context, state) => …
Run Code Online (Sandbox Code Playgroud)

android routes ios dart flutter

6
推荐指数
1
解决办法
5354
查看次数

Flutter - 定义按钮的优雅方式

我想为我的新应用程序创建一个设计系统。

标准升高按钮

      child: ElevatedButton.icon(               
            icon: Icon(Icons.power_settings_new),
            onPressed: () => context.go('/login'),
            label: const Text('Log out'),
          ),
Run Code Online (Sandbox Code Playgroud)

没关系,但在这种情况下它应该有红色强调。通过使用 foregroundColor 属性可以轻松实现此目标。通过使用这种技术,无需担心图标的颜色、文本的颜色、波纹效果颜色。

在此输入图像描述

      child: ElevatedButton.icon(
            style: ElevatedButton.styleFrom(
              foregroundColor: Colors.red,
            ),
            icon: Icon(Icons.power_settings_new),
            onPressed: () => context.go('/login'),
            label: const Text('Log out'),
          ),
Run Code Online (Sandbox Code Playgroud)

但是我不想每次都指定这种颜色。我更喜欢制作这样的东西,并且我想避免为按钮编写任何包装。

      child: ElevatedButton.error( // Color accent is red
                    icon: Icon(Icons.power_settings_new),
                    onPressed: () => context.go('/login'),
                    label: const Text('Log out'),
                  ),
Run Code Online (Sandbox Code Playgroud)

问题1:这个事件可能发生吗?

问题 2:图标、文本和波纹效果如何知道它们需要使用前景色来渲染自身?

user-interface material-design flutter flutter-material

6
推荐指数
1
解决办法
454
查看次数

如何在 Mockito Dart 版本中捕获参数

我试图捕获传递给函数的参数,然后在参数的属性之一等于特定值时做出一些断言。

不幸的是,传递了一个对象,因此我不能根据官方文档快速断言。

cat.eatFood("Fish");
expect(verify(cat.eatFood(captureAny)).captured.single, ["Fish"]);
Run Code Online (Sandbox Code Playgroud)

我想实现如下伪代码所示的目标;

cat.eatFood(fridge);
expect(verify(cat.eatFood(captureAny)).captured.single, fridge.milk == "Milk");
Run Code Online (Sandbox Code Playgroud)

或者我只是不想把争​​论冰箱存放在其他地方。

unit-testing mockito dart

5
推荐指数
1
解决办法
2267
查看次数