Repository: flutter
Issue: Icon widget wrapped inside a Hero widget does not interpolate size or color(only position works)
Labels: c: new feature,framework,a: animation,has reproducible steps,P3,found in release: 3.3,found in release: 3.6,team-framework,triaged-framework

The container which wraps the Icon widget works as expected but not the Icon. When I swap the Icon widget with a FlutterLogo widget, everything works. (tested on iOS emulator)

first.dart

```dart
import 'package:flutter/material.dart';
import 'package:transitiontest/second.dart';

class FirstPage extends StatefulWidget {
  @override
  _FirstPageState createState() => _FirstPageState();
}

class _FirstPageState extends State<FirstPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("First Page"),
      ),
      body: Center(
          child: ListView.builder(
        itemCount: 100,
        //itemExtent: 100.0,
        itemBuilder: (context, index) {
          return _StoryTile(index: index);
        },
      )),
    );
  }
}

class _StoryTile extends StatelessWidget {
  final int index;

  const _StoryTile({Key key, @required this.index}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: () {
        Navigator.of(context).push(
          MaterialPageRoute(builder: (context) {
            return SecondPage(index: index);
          }),
        );
      },
      child: Card(
        margin: EdgeInsets.fromLTRB(16, 8, 16, 8),
        color: Colors.purple,
        elevation: 6.0,
        shape:
            RoundedRectangleBorder(borderRadius: BorderRadius.circular(16.0)),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: Hero(
                transitionOnUserGestures: true,
                tag: index,
                child: Container(
                  //constraints: BoxConstraints.tightForFinite(),
                  color: Colors.blue,
                  child: Icon(
                    Icons.account_circle,
                    //key: Key("$index"),
                    color: Colors.white,
                    size: 40.0,
                  ),
                ),
              ),
            ),
            Text(
              "Element: $index",
              style: TextStyle(color: Colors.white, fontSize: 20.0),
            )
          ],
        ),
      ),
    );
  }
}
```


second.dart

```
import 'package:flutter/material.dart';

class SecondPage extends StatefulWidget {
  final int index;

  const SecondPage({Key key, @required this.index}) : super(key: key);

  @override
  _SecondPageState createState() => _SecondPageState();
}

class _SecondPageState extends State<SecondPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        constraints: BoxConstraints.expand(),
        color: Colors.grey,
        child: SafeArea(
          child: Center(
            child: Container(
                //constraints: BoxConstraints.tight(Size(200.0, 100.0)),
                //width: 200.0,
                //height: 100.0,
                child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisSize: MainAxisSize.max,
              children: <Widget>[
                Text(
                  "Element ${widget.index} detail",
                  style: TextStyle(fontSize: 20.0, color: Colors.white),
                ),
                SizedBox(height: 50.0),
                Hero(
                  transitionOnUserGestures: true,
                  tag: 0,
                  child: Container(
                    //constraints: BoxConstraints.tightForFinite(),
                    color: Colors.blue,
                    child: Icon(Icons.account_circle,
                        size: 85.0, color: Colors.white),
                  ),
                ),
                SizedBox(height: 50.0),
                Hero(
                  transitionOnUserGestures: true,
                  tag: 1,
                  child: Icon(Icons.cloud_circle,
                      size: 85.0, color: Colors.purple),
                ),
                SizedBox(height: 50.0),
                Hero(
                  transitionOnUserGestures: false,
                  tag: 2,
                  child:
                      Icon(Icons.cloud_circle, size: 85.0, color: Colors.pink),
                ),
              ],
            )),
          ),
        ),
      ),
      floatingActionButton: SafeArea(
        child: FloatingActionButton(
          onPressed: () {
            Navigator.of(context).pop();
          },
          child: Icon(Icons.chevron_left),
        ),
      ),
    );
  }
}
```