<h2 dir="auto">Steps to Reproduce</h2>
<p dir="auto">What I am trying to do is to let the user pick an image or take one with the camera. After that I want him to see it in a new screen and let him write a description or something. However, the screen seems a bit off after the image_picker screen is closing, and the new one is pushing in from the bottom.</p>
<p dir="auto">My hypothesis is that flutter tries to calculate the top position for new pushed screen based on the free space it has on screen. When the image_picker screen is closing, it might be barely visible and when the new screen is coming in, it still takes the closing image_picker screen into account and sets the top position wrong.</p>
<p dir="auto">This is what it looks like:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer" href="https://github.com/btastic/image_picker_repro/blob/master/2018-01-25_20h23_22.png?raw=true"><img src="https://github.com/btastic/image_picker_repro/blob/master/2018-01-25_20h23_22.png?raw=true" alt="alt text" title="Logo Title Text 1" style="max-width: 100%;"></a></p>
<p dir="auto">Feel free to clone this repro repository: <a href="https://github.com/btastic/image_picker_repro">https://github.com/btastic/image_picker_repro</a></p>
<p dir="auto">If you need anything else, please let me know.</p>
<h2 dir="auto">Logs</h2>
<p dir="auto"><code class="notranslate">Flutter debug run:</code> to the point where the issue happened.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk (26.1MB).
I/FlutterActivityDelegate( 6225): onResume setting current activity to this
Syncing files to device Android SDK built for x86 64...
W/art     ( 6225): Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
W/ResourceType( 6225): Invalid package identifier when getting bag for resource number 0x00000000
I/ViewConfigCompat( 6225): Could not find method getScaledScrollFactor() on ViewConfiguration
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
W/Glide   ( 6225): Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
W/Glide   ( 6225): Load failed for /storage/emulated/0/Pictures/Camera/IMG_20180124_2303541608499527.jpg with size [477x477]
W/Glide   ( 6225): class com.bumptech.glide.load.engine.GlideException: Failed to load resource
W/Glide   ( 6225):   Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream-&gt;Object-&gt;Drawable}, LOCAL
W/Glide   ( 6225):     Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;GifDrawable-&gt;Drawable}
W/Glide   ( 6225):     Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;Bitmap-&gt;Drawable}
W/Glide   ( 6225):     Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;BitmapDrawable-&gt;Drawable}
W/Glide   ( 6225):   Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor-&gt;Object-&gt;Drawable}, LOCAL
W/Glide   ( 6225):     Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor-&gt;Bitmap-&gt;Drawable}
W/Glide   ( 6225):     Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor-&gt;BitmapDrawable-&gt;Drawable}
E/Glide   ( 6225): class com.bumptech.glide.load.engine.GlideException: Failed to load resource
I/FlutterActivityDelegate( 6225): onResume setting current activity to this
I/flutter ( 6225): /storage/emulated/0/Pictures/Camera/IMG_20180124_2232171354909223.jpg
D/EGL_emulation( 6225): eglCreateContext: 0x7c5d91074280: maj 2 min 0 rcv 2
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d91074280: ver 2 0 (tinfo 0x7c5d9cc6fe80)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d91074280: ver 2 0 (tinfo 0x7c5d9cc6ff60)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/OpenGLRenderer( 6225): endAllActiveAnimators on 0x7c5d7b963800 (RippleDrawable) with handle 0x7c5d7e1be680
Application finished."><pre lang="Launching" class="notranslate"><code class="notranslate">Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk (26.1MB).
I/FlutterActivityDelegate( 6225): onResume setting current activity to this
Syncing files to device Android SDK built for x86 64...
W/art     ( 6225): Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
W/ResourceType( 6225): Invalid package identifier when getting bag for resource number 0x00000000
I/ViewConfigCompat( 6225): Could not find method getScaledScrollFactor() on ViewConfiguration
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
W/Glide   ( 6225): Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
D/skia    ( 6225): --- SkAndroidCodec::NewFromStream returned null
W/Glide   ( 6225): Load failed for /storage/emulated/0/Pictures/Camera/IMG_20180124_2303541608499527.jpg with size [477x477]
W/Glide   ( 6225): class com.bumptech.glide.load.engine.GlideException: Failed to load resource
W/Glide   ( 6225):   Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{FileInputStream-&gt;Object-&gt;Drawable}, LOCAL
W/Glide   ( 6225):     Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;GifDrawable-&gt;Drawable}
W/Glide   ( 6225):     Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;Bitmap-&gt;Drawable}
W/Glide   ( 6225):     Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream-&gt;BitmapDrawable-&gt;Drawable}
W/Glide   ( 6225):   Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor-&gt;Object-&gt;Drawable}, LOCAL
W/Glide   ( 6225):     Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor-&gt;Bitmap-&gt;Drawable}
W/Glide   ( 6225):     Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor-&gt;BitmapDrawable-&gt;Drawable}
E/Glide   ( 6225): class com.bumptech.glide.load.engine.GlideException: Failed to load resource
I/FlutterActivityDelegate( 6225): onResume setting current activity to this
I/flutter ( 6225): /storage/emulated/0/Pictures/Camera/IMG_20180124_2232171354909223.jpg
D/EGL_emulation( 6225): eglCreateContext: 0x7c5d91074280: maj 2 min 0 rcv 2
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d91074280: ver 2 0 (tinfo 0x7c5d9cc6fe80)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d91074280: ver 2 0 (tinfo 0x7c5d9cc6ff60)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/EGL_emulation( 6225): eglMakeCurrent: 0x7c5d95864320: ver 2 0 (tinfo 0x7c5d95824ac0)
D/OpenGLRenderer( 6225): endAllActiveAnimators on 0x7c5d7b963800 (RippleDrawable) with handle 0x7c5d7e1be680
Application finished.
</code></pre></div>
<p dir="auto"><code class="notranslate">flutter analyze</code></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Analyzing C:\Users\bkons\AndroidStudioProjects\image_picker_repro...
No issues found!
Ran in 9.5s"><pre lang="C:\Users\bkons\AndroidStudioProjects\image_picker_repro&gt;flutter" class="notranslate"><code class="notranslate">Analyzing C:\Users\bkons\AndroidStudioProjects\image_picker_repro...
No issues found!
Ran in 9.5s
</code></pre></div>
<h2 dir="auto">Flutter Doctor</h2>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[√] Flutter (on Microsoft Windows [Version 10.0.16299.192], locale de-DE, channel master)
    • Flutter version 0.0.21-pre.295 at C:\Users\bkons\Source\Repos\meddlr\flutter
    • Framework revision 5ae770345a (2 days ago), 2018-01-23 13:46:14 -0800
    • Engine revision 171d032f86
    • Tools Dart version 2.0.0-dev.16.0
    • Engine Dart version 2.0.0-edge.93d8c9fe2a2c22dc95ec85866af108cfab71ad06

[√] Android toolchain - develop for Android devices (Android SDK 27.0.1)
    • Android SDK at C:\Users\bkons\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[√] Android Studio (version 3.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[√] Connected devices
    • Android SDK built for x86 64 • emulator-5554 • android-x64 • Android 7.1.1 (API 25) (emulator)"><pre lang="C:\Users\bkons\AndroidStudioProjects\image_picker_repro&gt;flutter" class="notranslate"><code class="notranslate">[√] Flutter (on Microsoft Windows [Version 10.0.16299.192], locale de-DE, channel master)
    • Flutter version 0.0.21-pre.295 at C:\Users\bkons\Source\Repos\meddlr\flutter
    • Framework revision 5ae770345a (2 days ago), 2018-01-23 13:46:14 -0800
    • Engine revision 171d032f86
    • Tools Dart version 2.0.0-dev.16.0
    • Engine Dart version 2.0.0-edge.93d8c9fe2a2c22dc95ec85866af108cfab71ad06

[√] Android toolchain - develop for Android devices (Android SDK 27.0.1)
    • Android SDK at C:\Users\bkons\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[√] Android Studio (version 3.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

[√] Connected devices
    • Android SDK built for x86 64 • emulator-5554 • android-x64 • Android 7.1.1 (API 25) (emulator)
</code></pre></div>
<p dir="auto">Right now I’m only using <code class="notranslate">Navigator.push(context, new MaterialPageRoute(...</code> I know there are some other options like the <code class="notranslate">routes</code> named parameter to <code class="notranslate">MaterialApp</code> constructor. What are the pros/cons to each approach? Which do you think we should take?</p>