#dart #flutter
#dart #flutter
Вопрос:
Я новичок в Flutter, у меня есть требование, когда мне нужно разместить RaisedButton на краю изображения, как показано на скриншоте ниже (из соображений конфиденциальности я закрыл содержимое макета)
Я попытался изменить заполнение, но оно работает не со всеми устройствами на iOS и Android. Пожалуйста, помогите мне добиться этого для всех типов устройств, присутствующих в iOS и Android.
Ответ №1:
class SO extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.orange.shade200,
body: Stack(
alignment: Alignment.bottomCenter,
children: <Widget>[
Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Image.asset('assets/images/pngs/cake.png'),
SizedBox(
height: 25,
)
],
),
RaisedButton(
onPressed: () {},
child: Text("sample button"),
),
],
),
);
}
}
РЕДАКТИРОВАТЬ: один из нехаковых способов сделать это.
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
final sm = 100.0, lg = 200.0;
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
width: lg,
height: lg,
alignment: FractionalOffset.bottomCenter
FractionalOffset.fromOffsetAndSize(
Offset(0, sm / 2),
Size(sm, sm),
),
child: Container(
color: Colors.blue,
width: sm,
height: sm,
),
);
}
}
Комментарии:
1. Большое спасибо, @Doc работал для меня.
2. @user1241241 Код довольно понятен. Просто базовая логика пользовательского интерфейса. Пожалуйста, укажите строку, которую вы хотите, чтобы я объяснил, и я отредактирую свой ответ.
3. @Doc Я хотел бы сделать панель инструментов складной и добавить вид прокрутки внизу. У меня возникли проблемы с пониманием того, как кнопка идеально закреплена посередине. Также, как я могу сделать панель инструментов складной: (
4. @user1241241 это хакерский код. на самом деле 1-й слой содержит изображение и интервал в столбце. расстояние регулируется так, чтобы оно составляло ровно половину высоты кнопки. 2-й слой стека содержит кнопку. Теперь выравнивание помечено как bottomCenter, поэтому расположение начинается с нижнего центра. Один из нехаковых способов упоминается в edit.
5. @Doc спасибо!! но он не работает, когда его виджет с отслеживанием состояния: (весь экран красноватый
Ответ №2:
Вы пробовали Stack в Flutter?