Issue 1:
I'm trying to implement signup/login form.

In the signup page, if user succeeded signing up, Navigator.push method called and login page is pushed.

But it disables focus on TextFormField of login page. What is problem?

Below code is authentication code, just ignore korean words.

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

import 'dart:async';

import 'package:flutter_try/login_page.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;
Future<FirebaseUser> _user;
String email, password;

void login(BuildContext context) {
_auth.signInWithEmailAndPassword(
email: email,
password: email
).then((_){
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("로그인에 성공했습니다!"),
content: Text("환영합니다!"),
)
);
}).catchError((e){
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("로그인에 실패했습니다ㅠㅠ"),
content: Text("이메일이 존재하지 않거나 비밀번호가 틀립니다!"),
)
);
});
}

void makeUser(BuildContext context) {
_user = _auth.createUserWithEmailAndPassword(
email: email,
password: password
).then((_) async{
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("회원가입에 성공하셨습니다!"),
content: Text("로그인 페이지로 이동합니다..."),
)
);
// 회원가입 성공한 뒤 딜레이
await Future.delayed(Duration(milliseconds: 1000));
Navigator.push(context, MaterialPageRoute(builder: (context) => LoginPage()));
}).catchError((e) {
showDialog(
context: context,
builder: (_) => AlertDialog(
title: Text("회원가입에 실패했습니다.!"),
content: Text("이메일이 중복이거나 비밀번호가 6자리 미만입니다!"),
)
);
});
}

And below is login page code

import 'package:flutter/material.dart';
import 'package:flutter_try/resources.dart';
import 'package:flutter_try/signup_page.dart';
import 'package:flutter_try/firebase_authentication.dart';

class LoginPage extends StatelessWidget {

// TextFormField 값을 받아오기 위한 key 설정
GlobalKey<FormState> _formKey = GlobalKey<FormState>();

// 이메일 폼
final _email = TextFormField(
initialValue: "",
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
contentPadding: const EdgeInsets.symmetric(vertical: login_padding_vertical, horizontal: login_padding_vertical),
labelText: "이메일을 입력하세요.",
border: OutlineInputBorder(borderRadius: BorderRadius.circular(20.0))
),
validator: (value) => value.isEmpty ? "이메일을 입력하지 않았습니다!" : null,
onSaved: (value) {email = value;},
);

// 비밀번호 폼
final _password = TextFormField(
initialValue: "",
obscureText: true,
decoration: InputDecoration(
contentPadding: const EdgeInsets.symmetric(vertical: login_padding_vertical, horizontal: login_padding_vertical),
labelText: "비밀번호를 입력하세요.",
border: OutlineInputBorder(borderRadius: BorderRadius.circular(20.0))
),
validator: (value) => value.isEmpty ? "비밀번호를 입력하지 않았습니다!" : null,
onSaved: (value) {password = value;},
);

// 로그인 버튼
Widget _login(BuildContext context) {
return RaisedButton(
color: loginButtonColor,
textColor: loginTextColor,
child: Text("로그인"),
onPressed: (){
final FormState form = _formKey.currentState;
if(form.validate()){
form.save();
form.reset();
login(context);
}
}
);
}

// 회원가입 버튼
Widget _signUp(BuildContext context) {
return RaisedButton(
color: signUpButtonColor,
textColor: signUpTextColor,
child: Text("회원가입"),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => SignUp()));
}
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
shrinkWrap: true,
children: <Widget>[
Form(
key: _formKey,
child: Column(
children: <Widget>[
_email,
SizedBox(height: 20.0),
_password,
SizedBox(height: 20.0),
],
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
_login(context),
SizedBox(width: 20.0),
_signUp(context)
],
)
],
),
),
);
}
}

And lastly, error gif is this.

Issue 2:
Steps to Reproduce

Navigate to search screen.

Enter search term and tap on a result.

Navigate away from search screen.

Return to search screen using the back button.

Search text field becomes unresponsive.

Reproduced here: https://gist.github.com/JordanADavies/c7b630681aa81940d254876078a2f7a0

flutter doctor -v
[✓] Flutter (Channel beta, v0.9.4, on Mac OS X 10.14.1 18B75, locale en-GB)
• Flutter version 0.9.4 at /Users/jordandavies/Documents/development/flutter
• Framework revision f37c235c32 (5 weeks ago), 2018-09-25 17:45:40 -0400
• Engine revision 74625aed32
• Dart version 2.1.0-dev.5.0.flutter-a2eb050044

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at /Users/jordandavies/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• 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-1136-b06)
• All Android licenses accepted.

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

[✓] Android Studio (version 3.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 29.1.1
• Dart plugin version 181.5656
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] Connected devices (1 available)
• iPhone XR • 4018CC7F-D913-4181-8CF3-C29A87529EA2 • ios • iOS 12.1 (simulator)

• No issues found!