В настоящее время я сталкиваюсь с проблемой создания адаптивного дизайна во флаттере, чтобы он мог нормально работать с одинаковым внешним видом и ощущением для всех размеров экрана
В настоящее время мне нужно создать какНа изображении ниже, мне нужно, чтобы центр изображения (красный на изображении ниже) был выровнен с нижней частью другого (большое синее изображение), иногда красный находится по центру, но на разных размерах экрана он либо поднималнемного вверх или вниз.
Это моя попытка:
class ImageAssetUtils
{
static Image drawImage(String imagePath, double requiredWidth, double requiredHeight)
{
double screenFactor = 1.0;
screenFactor = ScreenSize.isSmallScreenSize(myApp.navigatorState.currentContext) ? 0.8 : screenFactor;
screenFactor = ScreenSize.isLargeScreenSize(myApp.navigatorState.currentContext) ? 1.21 : screenFactor;
requiredWidth = requiredWidth * screenFactor;
requiredHeight = requiredHeight * screenFactor;
return new Image.asset(imagePath, width: requiredWidth, height: requiredHeight);
}
}
class StyleUtils
{
static EdgeInsets givePadding(EdgeInsets absoluteEdges)
{
double screenFactor = 1.0;
screenFactor = ScreenSize.isSmallScreenSize(myApp.navigatorState.currentContext) ? 0.75 : screenFactor;
screenFactor = ScreenSize.isLargeScreenSize(myApp.navigatorState.currentContext) ? 1.14 : screenFactor;
double left = absoluteEdges.left * screenFactor;
double right = absoluteEdges.right * screenFactor;
double top = absoluteEdges.top * screenFactor;
double bottom = absoluteEdges.bottom * screenFactor;
return EdgeInsets.only(left: left, right: right, top: top, bottom: bottom);
}
}
class Test extends StatefulWidget
{
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test>
{
@override
Widget build(BuildContext context)
{
return new Scaffold(
backgroundColor: Color.fromRGBO(235, 235, 235, 1.0),
body: new Stack(children: <Widget>[
new Image.asset('some Image.png',
fit: BoxFit.fill,
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height * 0.33
),
ListView(children: <Widget>[
new Padding(
padding: StyleUtils.givePadding(EdgeInsets.only(top: 16.0)),
child: new Center(
child: new Container(
child: ImageAssetUtils.drawImage("my image.png", 100.0, 100.0),
),
)
)
]),
])
);
}
}
Если это поможетбудет высоко ценится, спасибо заранее.