Я пытаюсь создать приложение IOS с флаттером, которое использует карты Google. Однако, когда я нажимаю на поле поиска и открываю клавиатуру, чтобы найти место, приложение зависает, и я даже не могу напечатать. Это в симуляторе, так как у меня нет физического iPhone, чтобы проверить его. Я начинающий трепетать и не могу сказать, что идет не так (подозревая, что я что-то испортил). Я исследовал это и обнаружил, что в предыдущей версии флаттера была проблема с задержкой клавиатуры IOS, но не было никаких упоминаний о том, что приложение полностью зависло. Я прокомментировал Changed, думая, что это как-то связано с остановкой.
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Completer<GoogleMapController> _controller = Completer();
static const LatLng _center = const LatLng(45.521563, -122.677433);
String searchValue = "";
String _mapStyle;
@override
void initState() {
super.initState();
rootBundle.loadString('assets/map_style.txt').then((string) {
_mapStyle = string;
});
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
backgroundColor: GlobalAppConstants.appMainColor,
),
child: GestureDetector(
onTap:() {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: Stack(
children: <Widget>[
Container(
child: GoogleMap(
initialCameraPosition:
CameraPosition(target: _center, zoom: 1.0),
mapType: MapType.normal,
onMapCreated: (GoogleMapController controller) {
controller.setMapStyle(_mapStyle);
_controller.complete(controller);
},
),
),
Container(
color: Color.fromRGBO(255, 255, 255, 0.7),
),
Align(
alignment: Alignment(0.0, -0.5),
child: Column(
children: <Widget>[
Text(
'My Text',
style:
TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
),
Container(
padding: EdgeInsetsDirectional.only(top: 20.0),
),
Text(
'Search Country',
style: TextStyle(
color: GlobalAppConstants.appMainColor,
fontWeight: FontWeight.bold),
),
Container(
width: 140.0,
padding: EdgeInsetsDirectional.only(top: 0.0),
child: Divider(
thickness: 7.0,
color: GlobalAppConstants.appMainColor,
),
),
Container(
padding: EdgeInsetsDirectional.only(
start: 10.0, end: 10.0, top: 10.0),
height: 50,
child: CupertinoTextField(
placeholder: 'Search Country',
padding: EdgeInsets.symmetric(
horizontal: 10.0, vertical: 0.4),
prefix: Container(
padding: EdgeInsetsDirectional.only(start: 10.0),
child: Icon(
CupertinoIcons.search,
color: CupertinoColors.black,
size: 22.0,
),
),
decoration: BoxDecoration(
color: CupertinoColors.white,
boxShadow: [
BoxShadow(
color: CupertinoColors.black,
)
],
),
// onChanged: (String value) {
//// setState(() {
//// searchValue = value;
//// });
// },
),
)
],
),
)
],
),
));
}
}
Я добавил <key>io.flutter.embedded_views_preview</key>
<string>YES</string>
в мой файл Info.plist. Который, казалось, обсуждался на форумах, которые я нашел. Любая помощь будет оценена. Спасибо.