Проблема отладки Flutter при изменении ориентации в эмуляторе
Я делаю адаптивный дизайн пользовательского интерфейса в трепете. Затем я отлаживал его в своем эмуляторе Android. Сначала была портретная ориентация, и это было хорошо. Затем я изменил ориентацию, и это был плохой интерфейс, которого не ожидалось. Ожидается, что пользовательский интерфейс горячей перезагрузки или горячей перезагрузки изменится. Я должен перезагружать или перезагружать всегда после изменения ориентации. Настройки автозагрузки уже сделаны после сохранения. Как решить эту проблему?
2 ответа
Вам нужно сделать свой пользовательский интерфейс адаптивным. Вы можете сделать это с помощью «MediaQuery». Пример:
return Scaffold(
appBar: AppBar(
title: Text("Responsive Container"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
height: MediaQuery.of(context).size.height/ 4,
width: MediaQuery.of(context).size.width/3,
color: Colors.red,
child: Center(child: Text("Hello There !")),
),
],
),
),
);
Юу сказал, что вы создаете адаптивный пользовательский интерфейс, что означает, что вы используете ширину и высоту экрана, чтобы сделать его отзывчивым. Когда ориентация изменяется, очевидно, что ширина увеличивается, а высота уменьшается, поэтому, возможно, вам нужно добавить проверку изменения ориентации. Есть много способов сделать это, вот самый простой.
return Scaffold(
key: scaffoldKey,
body: OrientationBuilder(
builder: (BuildContext context, Orientation orientation) {
orientation == Orientation.portrait ?
doSomeThingifportrait : doSomethingifLandscape;
},
),
);