【问题标题】:How can I add a key property to a widget that doesn't have it already?如何将关键属性添加到还没有它的小部件?
【发布时间】:2020-08-22 09:45:11
【问题描述】:

我想将 GlobalKey 分配给默认情况下没有“key”属性的小部件。我试图扩展小部件类,添加一个关键属性,但我想不通。 (我后来也读到我可能不应该扩展小部件类)。

问题:我需要获得 BottomNavigationBarItem 小部件的最终渲染位置(不接受 (key:) );为此,我可以分配一个 GlobalKey 并获取小部件的位置/偏移量(我已经做过,除了这些无键小部件之外的其他小部件)

一些简单的 NavigationBar 代码:

return Scaffold(
  bottomNavigationBar: new BottomNavigationBar(
    key: navbarKey,   //  ---> NavigationBar has a "key" property
    items: [
      BottomNavigationBarItem(
          //  ---> BottomNavBarItem -> I dont have a key property :(
          icon: ImageIcon(images/someimg.png")),
          title: Text("SomeText")),
      BottomNavigationBarItem(.....)
        ]
        ),),

那么,我该怎么做呢?

【问题讨论】:

    标签: flutter widget


    【解决方案1】:

    虽然我没有成功地将 Key 添加到 BottomNavigationBarItem 小部件,但我发现我可以为其 Icon 添加一个键!

    BottomNavigationBarItem(
              icon: ImageIcon(
                AssetImage("images/Icon_BottomBar_learning.png"),
                key: navbarItemIconKey,
    ), ),
    

    这有助于我在大致相同的位置上画出我想要画的东西。 我现在可以使用这条路径了:

    return Path()
          ..addRect(Rect.fromLTWH(0, 0, size.width, size.height))
          ..addOval(Rect.fromCircle(
                  center: navbarItemIconKey.currentContext
                      .findRenderObject()
                      .paintBounds
                      .shift(Offset(
                          navbarItemIconKey.currentContext
                              .findRenderObject()
                              .getTransformTo(null)
                              .getTranslation()
                              .x,
                          navbarItemIconKey.currentContext
                              .findRenderObject()
                              .getTransformTo(null)
                              .getTranslation()
                              .y))
                      .center,
                  radius: 40)
    

    嗯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-02
      • 2020-05-19
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多