簡體   English   中英

如何從 MaterialPageRoute 中的構建器 object 中獲取 Widget Class 名稱

[英]How to get the Widget Class name from the builder object in MaterialPageRoute

我想要一個自定義 MaterialPageRoute,其中 RouteSettings object 將被分配一個默認名稱,該名稱應該是構建器,即小部件 class 名稱。

我已經覆蓋了以下方法,但不明白如何從構建器 object 中獲取 class 名稱。

import 'package:flutter/material.dart';
class CMaterialPageRoute extends MaterialPageRoute {


 CMaterialPageRoute({@required builder, RouteSettings settings, maintainState = true, bool fullscreenDialog = false,})
  : assert(builder != null),
    assert(maintainState != null),
    assert(fullscreenDialog != null),
    assert(opaque),
    super(settings: settings == null ? new RouteSettings(name: (builder as Widget).toStringShort()):settings,fullscreenDialog: fullscreenDialog);

}

在上面的代碼中,我試圖從構建器獲取小部件並將短名稱設置為 RouteSettings 名稱,但問題是 Casting 並且收到以下錯誤表示無法進行強制轉換

type '(dynamic) => CitySelectionScreen' 不是類型轉換中類型 'Widget' 的子類型

我這樣做的原因是作為 Firebase 分析集成的一部分,我需要更改我的整個導航代碼以添加以前不存在的新 RouteSettings,我試圖解決這個問題,改為設置默認名稱在整個項目級別進行的更改。

請在這方面幫助我。

builderWidgetBuilder類型的 function ,您不能將其轉換為Widget 我不確定您要實現什么,但也許如果您使用 null 調用 builder,您將能夠知道它返回哪個 Widget:

final WidgetBuilder b = (BuildContext context) => Scaffold();
print(b(null).toString());

它打印

腳手架

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM