小编Mat*_*att的帖子

在 Flutter 中覆盖小部件样式

问题:如何RaisedButton以某种方式自动(如果可能)设置应用程序中所有小部件的样式?


我正在将应用程序从原生 Android 转换为 Flutter。在此应用程序中,所有主要操作按钮都是圆形的、灰色的,并带有白色边框。在 Android 中,这就像在 中定义样式styles.xml并设置<Button style="MyPrimaryButton"/>.

另一方面,在 Flutter 中,我只能找到使用设置单个属性的示例(包括主题文档中的示例),property: Theme.of(context).property并且似乎没有传递颜色和字体以外的样式属性的方法。

以下是我想用于所有RaisedButton小部件的样式:

RaisedButton(
  color: Theme.of(context).accentColor,
  elevation: 0,
  shape: new RoundedRectangleBorder(
    side: BorderSide(color: Colors.white, width: 1.0, style: BorderStyle.solid),
    borderRadius: new BorderRadius.circular(30)),
)
Run Code Online (Sandbox Code Playgroud)

这个据称类似的问题已被关闭,主要基于意见,但我不是在征求您的意见。我问,如果有一种方法,风格这些按钮,最好是不涉及的复制粘贴的小部件源代码到我自己的类作为接受的答案建议(不过,如果这仍然是这样做则可能非常的唯一途径很好的答案)。

themes flutter

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

是否有可能改变龟的笔划?

我需要使用Python的乌龟图形绘制一个条形图,我认为简单地将笔做成一个厚方形会更容易,所以我可以像这样绘制条形图而不必担心制作几十个矩形并填充它们.

当我使用龟形状设置时turtle.shape('square'),它只会改变笔的外观但对实际绘图没有影响:

在此输入图像描述

有没有办法让乌龟实际绘制一个矩形笔划,无论是通过内置方法还是通过修改龟文件?

我不想要圆边,像这样:

在此输入图像描述

python graphics graph turtle-graphics

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

如何在 Flutter 中使用英雄过渡期间未运行的动画/动画?

我有一张描绘产品的卡片网格。当点击一张卡片时,我希望它翻转(围绕 Y 轴)以显示显示细节的“另一面”,同时增长以填充屏幕。

  • 持续时间 0.0 - 卡片显示正面且处于网格视图中
  • 持续时间 0.5 - 卡为全屏且垂直于屏幕的 50%(正面朝右,“背面”朝左)
  • 持续时间 1.0 - 卡完全展开并显示“背面”卡。

我已经成功地使翻转动画正常工作,但我无法弄清楚如何让它在英雄过渡期间运行。从这篇文章来看,我似乎需要利用flightShuttleBuilder才能为叠加层设置动画,但我的动画在过渡期间不会运行:

return Hero(
  tag: 'test',
  flightShuttleBuilder: (
    BuildContext flightContext,
    Animation<double> animation,
    HeroFlightDirection flightDirection,
    BuildContext fromHeroContext,
    BuildContext toHeroContext,
  ) {
    final Hero toHero = toHeroContext.widget;
    return Transform(
      transform: Matrix4.identity()..rotateY(-pi * animation.value),
      alignment: FractionalOffset.center,
      child: toHero,
    );
  },
  child: Card(...),
);
Run Code Online (Sandbox Code Playgroud)

animation widget dart flutter

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

有条件地将可选参数传递给小部件

我有一个自定义小部件,可以选择传递一个size属性。如果存在,则应将该值传递给我自己的小部件内的小部件size的属性Icon()

有没有办法仅在存在时传递该值?

class MyWidget extends StatelessWidget {
  final double size;
  MyWidget({this.size});

  Widget build(BuildContext context) {
    return Icon(
      iconData: IconData(),
      size: // Don't pass size here if not present
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

将 UUID 插入 MySQL 数据库时出现“错误的字符串值”

我有以下数据类:

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@Entity
@Table(name = "task")
public class Task {

    @Id
    @Column(name = "id", nullable = false, updatable = false)
    private UUID id;  // = UUID.randomUUID()

    @Column(name = "account_id", nullable = false)
    private Long accountId;

    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将此对象保存到我们的 MySQL 5.7 数据库中。但是我收到以下错误:

    insert 
    into
        `
        task` (
            `account_id`, `created_at`, `task_status`, `task_type`, `id`
        ) 
    values
        (?, ?, ?, ?, ?)
2022-08-15 08:57:57.943 TRACE 588 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [BIGINT] - [1]
2022-08-15 08:57:57.943 TRACE …
Run Code Online (Sandbox Code Playgroud)

mysql hibernate jpa spring-boot

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

可以在Watir的Firefox浏览器中安装扩展吗?

我正在尝试在包含大量广告的网页上使用Watir,这确实会减慢我的测试速度.为什么当Watir启动Firefox时,我的扩展程序(Adblock等)不能继续使用,是否可以安装它们?

ruby selenium watir watir-webdriver selenium-webdriver

4
推荐指数
1
解决办法
566
查看次数

如何使用 assert_raise 测试 Ruby 中的错误?

我有程序factorial.rbtest_factorial.rb. 前者看起来像这样:

def factorial(n)
  (1..n).inject(:*) || 1
end
Run Code Online (Sandbox Code Playgroud)

test_factorial 看起来像这样:

def test_number
  assert_equal 6, factorial(3),"3! should be 6"
end

def test_zero
  assert_equal 1, factorial(0), "0! should be 1"
end
Run Code Online (Sandbox Code Playgroud)

我需要test_negative在测试文件中添加另一种方法,以确认当阶乘为负时引发错误。我查看了文档,但仍然不明白我应该做什么。我是否必须在之后指定某种类型的错误assert_raisefactorial.rb由于错误是自动生成的,我是否需要添加代码?

ruby testing unit-testing assert factorial

4
推荐指数
1
解决办法
2648
查看次数

列中 RaisingButton 小部件之间出现不需要的空间

tl;dr 当我没有明确设置任何按钮时,为什么两个按钮之间会出现空格?

我正在尝试制作如下所示的布局:

该图描绘了一个基本的移动登录页面,该页面由一个包含徽标的居中列和下面两个用于登录和注册的垂直堆叠按钮组成。 徽标和按钮之间有一些空间,但按钮之间没有空间

然而,两个按钮之间出现了大约 16 像素的空间,我无法弄清楚它来自哪里。

我一开始以为可能是Column增加了空间,但我正在使用MainAxisAlignment.center它不应该添加任何空间。我现在认为可能有一些材质主题会自动将填充应用于RaisedButton,但是我已经查看了button_theme.dartraised_button.dart,似乎只设置了内部填充(文本和按钮边缘之间) 。我确信我忽略了一些东西,并且希望能够帮助您找出这个空间存在的原因。

auth.dart(如图所示的屏幕)

...
Widget build(BuildContext context) {
return Scaffold(
    backgroundColor: Colors.white,
    body: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Expanded(flex: 2, child: Container()),
          Expanded(
              flex: 8,
              child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    Padding(
                        padding: EdgeInsets.fromLTRB(0, 0, 0, 32),
                        child: Image(
                            fit: BoxFit.contain,
                            image: AssetImage('lib/res/drawable/logo.webp'))),
                    PrimaryButton(
                        onPressed: //...,
                        child: Text('Log In')),
                    PrimaryButton(
                        onPressed: //...,
                        child: Text('Sign Up')),
                  ])),
          Expanded(flex: 2, child: …
Run Code Online (Sandbox Code Playgroud)

widget dart flutter flutter-layout

3
推荐指数
1
解决办法
766
查看次数

验证 MongoDB 中数组项的类型

我正在使用 MongoDB 4.0。

我的集合中的文档可以有一个numbers包含整数数组的字段。我们可以numbers使用以下代码验证它确实是一个数组,但是否可以确保它们是整数?

properties: {
  numbers: {
    bsonType: 'array'
  }
 }
Run Code Online (Sandbox Code Playgroud)

我查看了验证文档BSON 类型文档,但其中任何一个都没有说明任何内容。一个示例显示了括在方括号 ( ["double"])中的字段,但该类型并未描述为数组,并且添加方括号似乎没有任何效果。

validation mongodb bson

0
推荐指数
1
解决办法
504
查看次数