【问题标题】:Hero Animation intially overflows then adjusts英雄动画最初溢出然后调整
【发布时间】:2020-08-27 03:17:56
【问题描述】:

为 list->detail 构建英雄动画,并针对屏幕尺寸使用响应式布局。 最初在转换时我得到一个简短的 renderflex 错误,然后它会调整并且很好。

我用 ListView 的列(电话)布局解决了这个问题,但另一个布局是一行(并排屏幕)。无论我能想到的 flexes 和 expand 以及 Lists 和所有其他小部件的组合是什么,我都无法解决它。谢谢

Widget build(BuildContext context) {
    return Scaffold(
      body: GestureDetector(
            child: Hero(
              tag: content.timestamp,
              child: MediaQuery.of(context).size.width < 600
                  ? ... Column layout
                  : Row(
                      children: [
                        FadeInImage.assetNetwork(
                          placeholder: 'assets/icons/barc-lodge.png',
                          image: 'https://www.barclodge.ca/android/diary/${content.image}',
                          width: 300,
                        ),
                 // Expanded exists to wrap text
                        Expanded(
                          child: diaryContent(context, content),
                        ),
                      ],
                    ),
            ),
            onTap: () => Navigator.pop(context),
          ),
    );
  }

  Widget diaryContent(BuildContext ctx, BarcLodgeDiary words) {
    return Column(
      children: <Widget>[
        Padding(
          padding: const EdgeInsets.fromLTRB(12.0, 12.0, 0.0, 0.0),
          child: Text(words.title, style: Theme.of(ctx).textTheme.headline1),
        ),
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 12.0),
          child: Text('${words.datestamp} at ${words.timestamp}', style: Theme.of(ctx).textTheme.caption),
        ),
        Padding(
          padding: const EdgeInsets.all(12.0),
          child: Text(words.diaryentry, style: Theme.of(ctx).textTheme.bodyText1),
        ),
      ],
    );
  }

【问题讨论】:

    标签: android flutter dart


    【解决方案1】:

    这可能是您的问题。 Hero 小部件内部需要一个 Material 小部件来为启动画面提供画布,您可以在文档 here 中阅读有关它的信息。该部分是关于构建您自己的英雄小部件,但我认为它仍然适用,如果这不能解决您的问题,请尝试使用 Material 小部件包装 Hero 小部件。

    【讨论】:

      【解决方案2】:

      我在几个小时内显然没有尝试过的一件事是 GridView。删除 Expanded,将 Row 更改为 GridView.count,一切正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-28
        • 1970-01-01
        • 1970-01-01
        • 2017-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-03
        相关资源
        最近更新 更多