标签: flutter-widget

如何本地化 BottomNavigationBarItem 标签

是否有任何解决方法可以将 BottomNavigationBarItem 翻译成不同的语言?我使用 Lang.getString(context, key) 访问地图(从 json 文件加载)以获取正确的翻译,对这样的标签进行硬编码没有任何意义,标签:“Home”。我应该怎么办?

PageView(
        controller: pageController,
        onPageChanged: _pageSwipped,
        children: <Widget>[Page1()],
      ),
      bottomNavigationBar: BottomNavigationBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.list),
            label: Lang.getString(context, key), // it doesn't work because it should be constant.
          ),
        ],
        currentIndex: _currenIndex,
        selectedItemColor: Colors.blue,
        iconSize: _deviceSize.size.height * 0.046,
        selectedFontSize: _deviceSize.size.height * 0.023,
        unselectedItemColor: Colors.grey,
        onTap: _bottomTapped,
      )
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-widget

9
推荐指数
1
解决办法
1034
查看次数

如何弯曲/弯曲 Flutter 小部件?(非仿射小部件渲染变换)

假设您有一些 flutter 小部件,例如TabBar. 它被渲染在一个矩形框中。我需要将其呈现为弧形,以便文本和下划线遵循圆的一部分(或者更好的是贝塞尔曲线)。

如何才能做到这一点?

这说明了我想要实现的目标 - 弯曲的TabBar小部件:

在此输入图像描述

请注意,在这种情况下,TabBar弯曲遵循圆弧(圆的边缘)。这就是我立即需要的。然而,在未来,我可能需要沿着日食边缘进行弯曲,因此允许它的解决方案会更好。

此外,适用于不同小部件的解决方案是首选。

重要提示我不想剪辑小部件的弯曲形状。小部件的整个区域应该保持可见。相反,我需要弯曲小部件的内容(=弯曲其渲染图像)。

对粗体字体表示歉意,但如果没有它,人们会不断发布有关如何剪辑小部件的答案,相比之下,这很微不足道,对我的问题毫无用处。

来自权威机构(例如在 Flutter 标签中的高声誉或 Flutter 团队成员中的高声誉)的回答“Flutter 目前不支持此功能”也将被接受。

user-interface flutter flutter-layout flutter-widget

9
推荐指数
1
解决办法
699
查看次数

Flutter 禁用整个屏幕上的触摸

有什么方法可以防止我的屏幕接收触摸事件,我不想为我的应用程序中的每个小部件禁用触摸。我只想锁定应用程序,使其不接收触摸事件。我怎样才能做到这一点?

touch dart flutter flutter-widget

8
推荐指数
2
解决办法
9393
查看次数

防止小部件填充在 Flutter 中扩展的祖先

如何防止 aRaisedButton扩展以填充Expanded包含它的 ?我想创建三列宽度与可用空间成正比的列,但我希望每列中的子项是其自然大小,而不消耗其父项的整个宽度Expanded

  Widget _controls(BuildContext cx) {
    return Row(
      children: [
        Expanded(
          flex: 1,
          child: player.isOnFirstItem
              ? Container()
              : IconButton(
                  icon: Icon(Icons.arrow_back),
                  onPressed: () => control.gotoPreviousItem(),
                ),
        ),
        Expanded(
          flex: 4,
          child: player.isComplete()
              ? Text(player.currentItem.status) // I'll be adding more here
              : RaisedButton(
                  child: Text(player.currentItem.actionText),
                  onPressed: () => player.currentItem.action(),
                ),
        ),
        Expanded(
          flex: 1,
          child: player.isOnLastItem
              ? Container()
              : IconButton(
                  icon: Icon(Icons.arrow_forward),
                  onPressed: () => player.gotoNextItem(),
                ),
        ),
      ],
    );
Run Code Online (Sandbox Code Playgroud)

RaisedButton还填充内的柔性空间时,我还窝它Container …

flutter flutter-layout flutter-widget

7
推荐指数
1
解决办法
1151
查看次数

如何在 Flutter 的 Canvas 上绘制小部件?

有没有办法在 aWidget上的给定位置绘制a Canvas

更具体地说,我想在实际小部件的前面单独绘制Marker与 a 相关的's的子小部件。这是创建一个可以做到这一点的尝试,但我无法弄清楚如何在画布上实际绘制小部件。使用requires a ,我不知道如何创建/检索:FlutterMapCanvasFlutterMapCustomPainterRenderObjectPaintingContext

class MarkerPainter extends CustomPainter {
  MapController mc;
  BuildContext context;
  List<Marker> markers;

  MarkerPainter(this.context, this.mc, this.markers);

  @override
  void paint(Canvas canvas, Size size) {
    if( markers != null && markers.isNotEmpty ){
      for(int i=0; i<markers.length; i++){
        Marker marker = markers[i];
        Offset o = myCalculateOffsetFromLatLng(marker.point, mc, context);

        // Won't work, this needs a PaintingContext...
        marker.builder(context).createElement().renderObject.paint(context, o); 
      }
    }
  }

  @override
  bool shouldRepaint(MarkerPainter oldDelegate) => oldDelegate.markers != …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-widget flutter-canvas fluttermap

7
推荐指数
1
解决办法
3280
查看次数

Flutter - 使用 MediaQuery 时防止重建

我想用来MediaQuery根据屏幕高度和宽度构建小部件。#26004中也提到了这个问题,即我只想查询一次大小数据,例如在initState. MediaQuery文档状态

使用 MediaQuery.of 查询当前媒体将导致您的小部件在 MediaQueryData 更改时自动重建(例如,如果用户旋转其设备)。

,但这会导致我的应用程序进行不必要的重建。具体来说,如果插入或填充发生更改(例如显示键盘时),它会导致小部件重建。

有没有一种替代方案MediaQuery可以在更改时不会导致重建MediaQueryData

flutter flutter-widget flutter-build

7
推荐指数
1
解决办法
4592
查看次数

如何检查两个小部件在颤动中是否重叠?

我想知道我们是否可以检查 flutter 中的两个小部件是否重叠。我实际上有两个使用 Stack 堆叠的 AnimatedContainer。我想检查两个孩子是否重叠。我实际上正在从头开始创建一个游戏并想检查碰撞。虽然 x 和 y 是一个选项,但它取决于两个对象的高度和宽度,并且由于它们不同,因此结果非常不准确。

任何帮助,将不胜感激。

dart mobile-development flutter flutter-animation flutter-widget

7
推荐指数
1
解决办法
3731
查看次数

如果您运行Flutter制作的应用并进入主屏幕一段时间后,会不断出现以下消息

我很害怕。这是一个错误吗?如果您运行它并转到主屏幕,此消息将不断出现。\n返回应用程序也是如此。

\n

下面是我的代码的一部分。

\n

此页面支持 YouTube 视频和相机功能。

\n
List<CameraDescription> cameras = List.empty(growable: true); \n\nclass Home extends StatefulWidget {\n  @override\n  const Home({Key? key}) : super(key: key);\n  _Home createState() => _Home();\n}\n\nclass _Home extends State<Home>{\n  CameraController controller =\n  CameraController(cameras[1], ResolutionPreset.max);\n  //final VideoHomeController controller= Get.put(VideoHomeController());\n  late final YoutubePlayerController _controller;\n\n  @override\n  void initState() {\n    super.initState();\n    controller.initialize().then((_) {\n      if (!mounted) {\n        return;\n      }\n      setState(() {});\n    });\n    _controller = YoutubePlayerController(\n      initialVideoId: '',\n      flags: YoutubePlayerFlags(\n        autoPlay: false,\n        loop: false,\n        hideThumbnail: false,\n        //isLive: true,\n\n        controlsVisibleAtStart: false,\n\n        useHybridComposition: false,\n      ),\n …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-web flutter-widget

7
推荐指数
1
解决办法
797
查看次数

使用函数声明将函数绑定到名称

我是颤振的新手。我正在使用相机插件将相机添加到我的应用程序中。我收到此警告使用函数声明将函数绑定到名称。我该如何解决这个问题?

代码 -

Widget _cameraTogglesRowWidget() {
    final List<Widget> toggles = <Widget>[];

    final onChanged = (CameraDescription? description) {
      if (description == null) {
        return;
      }

      onNewCameraSelected(description);
    };
Run Code Online (Sandbox Code Playgroud)

flutter flutter-plugin flutter-widget flutter-ios flutter-android

7
推荐指数
1
解决办法
6659
查看次数

如何在颤振中添加签名?

我已经在我的颤振项目中实现了signature_pad并且它工作正常。

不幸的是,当我把它放在里面时SingleChildScrollView,签名没有画出来。它滚动而不是签名。

似乎是,GestureDetector但我不知道如何解决它。

有人可以给我一些线索吗?

谢谢。

signature dart flutter flutter-widget singlechildscrollview

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