Issue 1:
Steps to Reproduce

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.

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.

This is what it looks like:

Feel free to clone this repro repository: https://github.com/btastic/image_picker_repro

If you need anything else, please let me know.

Logs

Flutter debug run: to the point where the issue happened.

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->Object->Drawable}, LOCAL
W/Glide ( 6225): Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->GifDrawable->Drawable}
W/Glide ( 6225): Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->Bitmap->Drawable}
W/Glide ( 6225): Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{FileInputStream->BitmapDrawable->Drawable}
W/Glide ( 6225): Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{ParcelFileDescriptor->Object->Drawable}, LOCAL
W/Glide ( 6225): Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->Bitmap->Drawable}
W/Glide ( 6225): Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{ParcelFileDescriptor->BitmapDrawable->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.

flutter analyze

Analyzing C:\Users\bkons\AndroidStudioProjects\image_picker_repro...
No issues found!
Ran in 9.5s

Flutter Doctor

[√] 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)

Issue 2:
Right now I’m only using Navigator.push(context, new MaterialPageRoute(... I know there are some other options like the routes named parameter to MaterialApp constructor. What are the pros/cons to each approach? Which do you think we should take?