标签: flutter

将 Row 定位在堆栈底部 Flutter

我有一个固定高度的堆栈,我想在该堆栈的底部放置一行包含多个元素的行。

我包裹了我的行

mainAxisAlignment: MainAxisAlignment.center
Run Code Online (Sandbox Code Playgroud)

作为定位元素中的属性,因此代码现在如下所示:

Stack(
  children: [
    //Other children,
    Positioned(
      bottom: 0,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          //children here
        ],
      ),
    ),
  ],
),
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在该行位于定位元素内部之前,它占据了屏幕的整个宽度。现在该行只有其子行的宽度。这是一个问题,因为孩子们现在不再以中心为中心。

描述情况的图片

有谁知道这里发生了什么以及如何将行放置在堆栈的底部而不将行缩小到不再是屏幕的宽度?

row flutter

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

如何在flutter中使用RevenueCat取消订阅?

我已经在 flutter 中使用 RevenueCat 实现了订阅,但 RevenueCat 没有关于取消订阅的文档。

in-app-subscription flutter revenuecat

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

Flutter TextFormField 禁用键盘但允许接受输入

我正在编写一个扫描仪应用程序,该应用程序将安装在运行 Android 的扫描仪上。应用程序内部有一个TextFormField等待输入扫描或粘贴到里面的文本以进行其他 API 调用。

但是我没有找到任何TextFormField禁用软键盘的选项,但仍然可以接受输入文本

以下是我TextFormField尝试过的扫描仪小部件代码。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class BuildScannerBar extends StatefulWidget {
  final Function onFieldSubmitted;
  final TextEditingController textFieldController;
  final String labelText, hintText;
  final bool disableKeyboard;

  BuildScannerBar({
    @required this.textFieldController,
    @required this.onFieldSubmitted,
    this.disableKeyboard = true,
    this.labelText = 'Barcode Scan',
    this.hintText = '',
  });

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

class _BuildScannerBarState extends State<BuildScannerBar> {

  @override
  Widget build(BuildContext context) {

    return Align(
      alignment: Alignment.topCenter,
      child: Container(
        height: 75,
        margin: EdgeInsets.only(top: 50),
        width: 300 …
Run Code Online (Sandbox Code Playgroud)

flutter

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

Flutter画布,如何在子部件上绘画?

我试图在子文本框小部件上绘制红点,如下所示:

在此输入图像描述

为此,我用 widget 包装了子CustomPaint()widget:

 return CustomPaint(
      painter: DotsPainter(), //draws red dots based on child's size
      child: child, //textbox
    );
Run Code Online (Sandbox Code Playgroud)

但结果是这样的:

在此输入图像描述

如何使 CustomPainter“覆盖”其子部件?

谢谢。

canvas custom-painting flutter flutter-layout

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

使用 Riverpod 实现多个状态的 stateNotifier

我对如何将 stateNotifier 与 Riverpod 一起使用感到困惑。大多数教程都使用反例,这很好,但对我来说仍然不太清楚。我正在尝试实现一个具有 2 个状态的 stateNotifier : isDrawerOpen 和 isDrawerColor ,它返回布尔结果。有些功能会触发这些状态的变化。以下是我已经实现的内容,确实需要一些澄清。

import 'package:flutter_riverpod/all.dart';

class DrawerNotifier extends StateNotifier{

  DrawerNotifier() : super(false);

  bool isDrawerOpen = false;
  bool isDrawerColor = false;
  
  void toggleDrawer() {
    isDrawerOpen = !isDrawerOpen;
  }
  void toggleColor() {
    isDrawerColor = !isDrawerColor;
  }
}

final drawerProvider = StateNotifierProvider((_) => DrawerNotifier());

final isDrawerOpen = StateNotifierProvider((ref){
  final state = ref.watch(drawerProvider);
  return state.isDrawerOpen;
});

final isDrawerColor = StateNotifierProvider((ref){
  final state = ref.watch(drawerProvider);
  return state.isDrawerColor;
});
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-provider riverpod

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

未处理的异常:FormatException:意外的扩展字节(在偏移量 5 处)

Json 响应具有 gzip 编码字符串。

 var dataList = [
    {"Data": "compressedata"},
    {"Data": "compressedData"}
  ];
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法来解压字符串,但无法得到预期的结果。最后尝试的方法是

  List<int> res = base64.decode(base64.normalize(zipText));

  print(utf8.decode(res));
Run Code Online (Sandbox Code Playgroud)

其中 zipText 是来自 json 的字符串,这会引发错误

Unhandled Exception: FormatException: Unexpected extension byte (at offset 5)
Run Code Online (Sandbox Code Playgroud)

其他方式

  Uint8List compressed = base64.decode(zipText);
  var gzipBytes = new GZipDecoder().decodeBytes(compressed);
  print(gzipBytes);

Run Code Online (Sandbox Code Playgroud)

抛出错误

Unhandled Exception: FormatException: Invalid GZip Signature flutter
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

gzip string-decoding dart flutter

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

Flutter:如何使用变量将参数传递给 Widget?

这是一些伪代码,显示了我想要实现的目标:

Text txt(text, [subtitle = false]) {
  final params = subtitle
      ? {
          'textAlign': TextAlign.center,
          'style': TextStyle(color: Colors.purple)
        }
      : {
          'textAlign': TextAlign.left,
          'style': TextStyle(color: Colors.black54)
        };

  return Text(
    text,
    ...params,
  );
}
Run Code Online (Sandbox Code Playgroud)

是否可以将变量参数传递给 Flutter 小部件?请记住,Text 小部件只是一个示例,而不是我问题的焦点,它可以是任何其他 Flutter 小部件,例如 Container 或 SizedBox。

variables arguments dart flutter

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

Flutter Dart:无法加载 SVG 资源:无法加载资源 iconPath

我正在尝试使用flutter_svg包加载一些 .svg 图标。

\n
class _MyHomePageState extends State<MyHomePage> {\n  final String iconPath = "assets/icons/adept.svg";\n  ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我将包含该文件夹assets/的文件夹添加icons/到该pubspec.yaml文件中:

\n
  assets:\n    - assets/\n
Run Code Online (Sandbox Code Playgroud)\n

当我尝试将图标加载到我的体内时:

\n
      body: Center(\n        child: Container(\n          child: LimitedBox(\n            child: SvgPicture.asset(\'iconPath\', color: Colors.black, width: 100, height: 100,),\n            maxHeight: 100,\n            maxWidth: 100,\n          )\n        )\n      ),\n
Run Code Online (Sandbox Code Playgroud)\n

我得到这个 StackTrace,无法加载资产:assetName,

\n
I/flutter (10154): \xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1 EXCEPTION CAUGHT BY SVG \xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\nI/flutter (10154): The following assertion was thrown resolving a single-frame picture stream:\nI/flutter (10154): Unable to load …
Run Code Online (Sandbox Code Playgroud)

svg assets dart flutter

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

在 Flutter 中创建富文本编辑器

我计划在 Flutter 中为个人应用程序创建一个富文本编辑器。我知道已经有一些选择,比如 zefyr。然而,它仍处于开发预览阶段,我想构建一些不同的东西。

文本编辑器的功能是用户可以添加图像、加粗文本、添加列表、斜体文本等。只是基本的文本编辑器功能。

我遇到问题的地方是文本输入方面。flutter 默认文本输入仅允许每个文本字段使用一种文本样式。因此,当涉及到内联样式时,这将构成巨大的挑战。此外,文本字段中不能包含图像,因此这是另一个问题。

如果有人对如何解决这个问题有任何想法,那么这将是一个很好的开始。

所以,我真的在询问创建编辑器的方法,因为它不像在 html 中创建编辑器那么简单

richtextbox rich-text-editor flutter flutter-dependencies flutter-layout

5
推荐指数
0
解决办法
1539
查看次数

扑。如何对重新排序的 ListView 进行动画处理?

是否可以像 ReorderableListView 一样对 ListView 的顺序更改进行动画处理,但无需用户交互。

例如,意味着几秒钟后 ListView 的顺序会发生变化。所以我有两个包含相同项目但顺序不同的列表。列表一和列表二。

我已经看到了 AnimatedList,但在那里我可以删除或添加动画。我需要像移动动画这样的东西。

有点像 ReorderableListView,但没有用户交互。或者是否可以在 ReorderableListView 中以编程方式替换用户交互?

提前致谢

listview dart flutter flutter-animatedlist reorderable-list

5
推荐指数
0
解决办法
568
查看次数