<p dir="auto">If you put a widget inside of a stack, and you offset it in such a way that parts of it would exist outside of that stack, and then you wrap it in some sort of animation that animates the opacity, it will animate oddly.  This is 100% reproducible.</p>
<p dir="auto">This is pretty severe in some cases, for example an image that is faded in but is made to aspect fit.  it animates in what looks like progressive chunks, but it's actually this bug.</p>
<p dir="auto">Here's a video of the bug in action: <a href="https://www.youtube.com/watch?v=teHlNhBuTzs" rel="nofollow">https://www.youtube.com/watch?v=teHlNhBuTzs</a></p>
<p dir="auto">Here's a main.dart file I used in the video above:</p>
<div class="highlight highlight-source-dart notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import 'package:flutter/material.dart';

void main() =&gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() =&gt; _MyHomePageState();
}

class _MyHomePageState extends State&lt;MyHomePage&gt; with TickerProviderStateMixin {
  AnimationController _controller;
  double _leftOffset = 0.0;
  @override
  void initState() {
    _controller = AnimationController(
        vsync: this, duration: Duration(milliseconds: 1000));
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        color: Colors.white,
        child: Stack(
          children: &lt;Widget&gt;[
            GestureDetector(
              onTapDown: (details) {
                setState(() {
                  _leftOffset = details.globalPosition.dx;
                });
              },
            ),
            Positioned(
              left: _leftOffset,
              top: 0.0,
              width: 300.0,
              height: 200.0,
              child: AnimatedBuilder(
                animation: _controller,
                builder: (context, child) {
                  return Opacity(
                    opacity: _controller.value,
                    child: child,
                  );
                },
                child: Container(
                  color: Colors.blueAccent,
                ),
              ),
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          _controller.forward(from: 0.0);
        },
        child: Icon(Icons.add),
      ),
    );
  }
}"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s">'package:flutter/material.dart'</span>;

<span class="pl-k">void</span> <span class="pl-en">main</span>() <span class="pl-k">=&gt;</span> <span class="pl-en">runApp</span>(<span class="pl-c1">MyApp</span>());

<span class="pl-k">class</span> <span class="pl-c1">MyApp</span> <span class="pl-k">extends</span> <span class="pl-c1">StatelessWidget</span> {
  <span class="pl-k">@override</span>
  <span class="pl-c1">Widget</span> <span class="pl-en">build</span>(<span class="pl-c1">BuildContext</span> context) {
    <span class="pl-k">return</span> <span class="pl-c1">MaterialApp</span>(
      title<span class="pl-k">:</span> <span class="pl-s">'Flutter Demo'</span>,
      theme<span class="pl-k">:</span> <span class="pl-c1">ThemeData</span>(
        primarySwatch<span class="pl-k">:</span> <span class="pl-c1">Colors</span>.blue,
      ),
      home<span class="pl-k">:</span> <span class="pl-c1">MyHomePage</span>(title<span class="pl-k">:</span> <span class="pl-s">'Flutter Demo Home Page'</span>),
    );
  }
}

<span class="pl-k">class</span> <span class="pl-c1">MyHomePage</span> <span class="pl-k">extends</span> <span class="pl-c1">StatefulWidget</span> {
  <span class="pl-c1">MyHomePage</span>({<span class="pl-c1">Key</span> key, <span class="pl-c1">this</span>.title}) <span class="pl-k">:</span> <span class="pl-c1">super</span>(key<span class="pl-k">:</span> key);

  <span class="pl-k">final</span> <span class="pl-c1">String</span> title;

  <span class="pl-k">@override</span>
  <span class="pl-c1">_MyHomePageState</span> <span class="pl-en">createState</span>() <span class="pl-k">=&gt;</span> <span class="pl-c1">_MyHomePageState</span>();
}

<span class="pl-k">class</span> <span class="pl-c1">_MyHomePageState</span> <span class="pl-k">extends</span> <span class="pl-c1">State</span>&lt;<span class="pl-c1">MyHomePage</span>&gt; <span class="pl-k">with</span> <span class="pl-c1">TickerProviderStateMixin</span> {
  <span class="pl-c1">AnimationController</span> _controller;
  <span class="pl-c1">double</span> _leftOffset <span class="pl-k">=</span> <span class="pl-c1">0.0</span>;
  <span class="pl-k">@override</span>
  <span class="pl-k">void</span> <span class="pl-en">initState</span>() {
    _controller <span class="pl-k">=</span> <span class="pl-c1">AnimationController</span>(
        vsync<span class="pl-k">:</span> <span class="pl-c1">this</span>, duration<span class="pl-k">:</span> <span class="pl-c1">Duration</span>(milliseconds<span class="pl-k">:</span> <span class="pl-c1">1000</span>));
    <span class="pl-c1">super</span>.<span class="pl-en">initState</span>();
  }

  <span class="pl-k">@override</span>
  <span class="pl-c1">Widget</span> <span class="pl-en">build</span>(<span class="pl-c1">BuildContext</span> context) {
    <span class="pl-k">return</span> <span class="pl-c1">Scaffold</span>(
      appBar<span class="pl-k">:</span> <span class="pl-c1">AppBar</span>(
        title<span class="pl-k">:</span> <span class="pl-c1">Text</span>(widget.title),
      ),
      body<span class="pl-k">:</span> <span class="pl-c1">Container</span>(
        color<span class="pl-k">:</span> <span class="pl-c1">Colors</span>.white,
        child<span class="pl-k">:</span> <span class="pl-c1">Stack</span>(
          children<span class="pl-k">:</span> <span class="pl-k">&lt;</span><span class="pl-c1">Widget</span><span class="pl-k">&gt;</span>[
            <span class="pl-c1">GestureDetector</span>(
              onTapDown<span class="pl-k">:</span> (details) {
                <span class="pl-en">setState</span>(() {
                  _leftOffset <span class="pl-k">=</span> details.globalPosition.dx;
                });
              },
            ),
            <span class="pl-c1">Positioned</span>(
              left<span class="pl-k">:</span> _leftOffset,
              top<span class="pl-k">:</span> <span class="pl-c1">0.0</span>,
              width<span class="pl-k">:</span> <span class="pl-c1">300.0</span>,
              height<span class="pl-k">:</span> <span class="pl-c1">200.0</span>,
              child<span class="pl-k">:</span> <span class="pl-c1">AnimatedBuilder</span>(
                animation<span class="pl-k">:</span> _controller,
                builder<span class="pl-k">:</span> (context, child) {
                  <span class="pl-k">return</span> <span class="pl-c1">Opacity</span>(
                    opacity<span class="pl-k">:</span> _controller.value,
                    child<span class="pl-k">:</span> child,
                  );
                },
                child<span class="pl-k">:</span> <span class="pl-c1">Container</span>(
                  color<span class="pl-k">:</span> <span class="pl-c1">Colors</span>.blueAccent,
                ),
              ),
            ),
          ],
        ),
      ),
      floatingActionButton<span class="pl-k">:</span> <span class="pl-c1">FloatingActionButton</span>(
        onPressed<span class="pl-k">:</span> () {
          _controller.<span class="pl-en">forward</span>(from<span class="pl-k">:</span> <span class="pl-c1">0.0</span>);
        },
        child<span class="pl-k">:</span> <span class="pl-c1">Icon</span>(<span class="pl-c1">Icons</span>.add),
      ),
    );
  }
}</pre></div>
<h2 dir="auto">Logs</h2>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[   +2 ms] 🔥  To hot reload changes while running, press &quot;r&quot;. To hot restart (and rebuild state), press &quot;R&quot;.
[   +1 ms] An Observatory debugger and profiler on iPhone XS is available at: http://127.0.0.1:53526/
[        ] For a more detailed help message, press &quot;h&quot;. To detach, press &quot;d&quot;; to quit, press &quot;q&quot;.
[+115689 ms] [DEVICE LOG] 2018-11-09 11:13:51.200335-0500  localhost Runner[5498]: (AggregateDictionary)
AggregateDictionary is not supported on this platform

"><pre class="notranslate"><code class="notranslate">[   +2 ms] 🔥  To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
[   +1 ms] An Observatory debugger and profiler on iPhone XS is available at: http://127.0.0.1:53526/
[        ] For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
[+115689 ms] [DEVICE LOG] 2018-11-09 11:13:51.200335-0500  localhost Runner[5498]: (AggregateDictionary)
AggregateDictionary is not supported on this platform


</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ flutter analyze
Analyzing animatedopacitytest...                                 
No issues found! (ran in 1.9s)
"><pre class="notranslate"><code class="notranslate">$ flutter analyze
Analyzing animatedopacitytest...                                 
No issues found! (ran in 1.9s)

</code></pre></div>

<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[✓] Flutter (Channel master, v0.11.1-pre.127, on Mac OS X 10.13.6 17G65, locale en-US)
    • Flutter version 0.11.1-pre.127 at /Users/KG/Developer/Flutter/flutter
    • Framework revision ae2b215efe (7 hours ago), 2018-11-09 00:40:29 -0800
    • Engine revision b2479f8d29
    • Dart version 2.1.0 (build 2.1.0-dev.9.3 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/KG/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/KG/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2018.2.5)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 29.1.3
    • Dart plugin version 182.4892.25
"><pre class="notranslate"><code class="notranslate">[✓] Flutter (Channel master, v0.11.1-pre.127, on Mac OS X 10.13.6 17G65, locale en-US)
    • Flutter version 0.11.1-pre.127 at /Users/KG/Developer/Flutter/flutter
    • Framework revision ae2b215efe (7 hours ago), 2018-11-09 00:40:29 -0800
    • Engine revision b2479f8d29
    • Dart version 2.1.0 (build 2.1.0-dev.9.3 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/KG/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/KG/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 28.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Community Edition (version 2018.2.5)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 29.1.3
    • Dart plugin version 182.4892.25

</code></pre></div>