Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 位于pdf(EasyWebView)顶部的窗口对话框(showDatePicker)的一部分不工作,也不响应_Flutter_Dart_Datepicker_Flutter Layout_Flutter Web - Fatal编程技术网

Flutter 位于pdf(EasyWebView)顶部的窗口对话框(showDatePicker)的一部分不工作,也不响应

Flutter 位于pdf(EasyWebView)顶部的窗口对话框(showDatePicker)的一部分不工作,也不响应,flutter,dart,datepicker,flutter-layout,flutter-web,Flutter,Dart,Datepicker,Flutter Layout,Flutter Web,我使用两个插件:EasyWebView和showDatePicker。在EasyWebView中,我通过链接显示pdf。在某些情况下,我需要显示一个日期选择器对话框,使用showDatePicker,用户将在其中选择一个日期。问题是位于pdf(EasyWebView)顶部的窗口对话框(showDatePicker)部分不起作用。pdf侧面没有一个按钮不起作用。其余的按钮,不在表面上的pdf-工作 示例显示窗口对话框的A部分叠加在pdf上,不起作用,同时B部分工作正常 PDF(EasyWebVi

我使用两个插件:EasyWebViewshowDatePicker。在EasyWebView中,我通过链接显示pdf。在某些情况下,我需要显示一个日期选择器对话框,使用showDatePicker,用户将在其中选择一个日期。问题是位于pdf(EasyWebView)顶部的窗口对话框(showDatePicker)部分不起作用。pdf侧面没有一个按钮不起作用。其余的按钮,不在表面上的pdf-工作

示例显示窗口对话框的A部分叠加在pdf上,不起作用,同时B部分工作正常

PDF(EasyWebView)小部件代码:

Expanded(
      flex: 2,
      child: new Container(
        padding: new EdgeInsets.only(left: 8.0, right: 8.0),
        child: Card(
          clipBehavior: Clip.antiAlias,
          child: SizedBox(
              height: 9000, // constrain height
              child: EasyWebView(
                src: widget.url, // API url
                isHtml: false,
                // Use Html syntax
                isMarkdown: false,
                // Use markdown syntax
                convertToWidgets: false,
                onLoaded: () {}, // Try to convert to flutter widgets
                // width: 100,
                // height: 100,
              )),
        ),
      ),
    );

    return Padding(
      padding: const EdgeInsets.only(top: 20.0),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Expanded(
            flex: 1,
            child: GestureDetector(
              onTap: () async {
                DateTime endDatePicked =
                    await showDatePicker(context: context, initialDate: _endDate, firstDate: _earliestEndDate, lastDate: _latestEndDate);
                setState(() {
                  if (endDatePicked != null) {
                    _endDate = endDatePicked;
                    _selectedDateText = getFormattedDateValue(_endDate);
                    endDataLog.comment = _endDate.toString();
                  }
                });
              },
              child: Container(
                decoration: BoxDecoration(
                  border: Border(
                    bottom: BorderSide(width: 1.0, color: RendinColor.darkGrey),
                  ),
                ),
                child: TextFormField(
                  //enabled: false,
                  keyboardType: TextInputType.datetime,
                  readOnly: true,
                  onTap: () async {
                    DateTime endDatePicked = await showDatePicker(
                        context: context, initialDate: _endDate, firstDate: _earliestEndDate, lastDate: _latestEndDate);
                    setState(() {
                      if (endDatePicked != null) {
                        _endDate = endDatePicked;
                        _selectedDateText = getFormattedDateValue(_endDate);
                        endDataLog.comment = _endDate.toString();
                      }
                    });
                  },
                  validator: (val) => _selectedDateText == getFormattedDateValue(_endDate)
                      ? null
                      : translate("agreement.termination.choose_date", context: context),
                  decoration: InputDecoration(hintText: _selectedDateText),
                  style: TextStyle(color: RendinColor.darkGrey),
                ),
              ),
            ),
          )
        ],
      ),
    );

对话框(showDatePicker)小部件代码:

Expanded(
      flex: 2,
      child: new Container(
        padding: new EdgeInsets.only(left: 8.0, right: 8.0),
        child: Card(
          clipBehavior: Clip.antiAlias,
          child: SizedBox(
              height: 9000, // constrain height
              child: EasyWebView(
                src: widget.url, // API url
                isHtml: false,
                // Use Html syntax
                isMarkdown: false,
                // Use markdown syntax
                convertToWidgets: false,
                onLoaded: () {}, // Try to convert to flutter widgets
                // width: 100,
                // height: 100,
              )),
        ),
      ),
    );

    return Padding(
      padding: const EdgeInsets.only(top: 20.0),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Expanded(
            flex: 1,
            child: GestureDetector(
              onTap: () async {
                DateTime endDatePicked =
                    await showDatePicker(context: context, initialDate: _endDate, firstDate: _earliestEndDate, lastDate: _latestEndDate);
                setState(() {
                  if (endDatePicked != null) {
                    _endDate = endDatePicked;
                    _selectedDateText = getFormattedDateValue(_endDate);
                    endDataLog.comment = _endDate.toString();
                  }
                });
              },
              child: Container(
                decoration: BoxDecoration(
                  border: Border(
                    bottom: BorderSide(width: 1.0, color: RendinColor.darkGrey),
                  ),
                ),
                child: TextFormField(
                  //enabled: false,
                  keyboardType: TextInputType.datetime,
                  readOnly: true,
                  onTap: () async {
                    DateTime endDatePicked = await showDatePicker(
                        context: context, initialDate: _endDate, firstDate: _earliestEndDate, lastDate: _latestEndDate);
                    setState(() {
                      if (endDatePicked != null) {
                        _endDate = endDatePicked;
                        _selectedDateText = getFormattedDateValue(_endDate);
                        endDataLog.comment = _endDate.toString();
                      }
                    });
                  },
                  validator: (val) => _selectedDateText == getFormattedDateValue(_endDate)
                      ? null
                      : translate("agreement.termination.choose_date", context: context),
                  decoration: InputDecoration(hintText: _selectedDateText),
                  style: TextStyle(color: RendinColor.darkGrey),
                ),
              ),
            ),
          )
        ],
      ),
    );

如何解决此问题?

解决方案是通过
showDataPicker()的
TransitionBuilder
参数使用

例如:

final date = await showDatePicker(
    ...,
    builder: (ctx, child) => PointerInterceptor(child: child)
);

在您共享MRE之前,无法解决此问题。请考虑给我们看一些代码。然后社区可以提供帮助。除此之外,了解您正在测试的是哪个平台,哪个颤振版本会很有帮助。这将有助于隔离问题。@AbhilashChandran感谢您的评论。我添加了一个代码和颤振医生