мог бы использовать некоторую помощь здесь. Я пытался заставить это работать в Flutter, и попробовал несколько различных решений, которые я нашел в Интернете, ни один из которых не сработал. Мне нужна кнопка, которая сосредоточена на экране, чтобы перейти к нижней части страницы после нажатия. < /P>
class _ReportStressorState extends State {
bool disableNextButton = false;
List stressorForms = [];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.9,
height: MediaQuery.of(context).size.height * 0.75,
child: Stack(
children: [
Column(
children: [
const ProgressBar(numberOfStages: 4, currentStage: 2),
Builder(
builder: (BuildContext context) {
if (stressorForms.isNotEmpty) {
return Expanded(
child: ListView.builder(
itemCount: stressorForms.length,
itemBuilder: (context, index) {
return stressorForms[index];
},
),
);
} else {
return const SizedBox.shrink();
}
},
),
Align(
alignment: Alignment.center,
child: PlatformElevatedButton(
onPressed: () {
setState(() {
stressorForms.add(const StressorForm());
});
disableNextButton = true;
},
color: Colors.orange,
child: Padding(
padding: const EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0),
child: Text("+ Add a stressor",
style: TextStyle(
fontSize: MediaQuery.of(context).size.width * 0.04,
color: Colors.white)),
),
),
)
],
),
],
)
),
),
);
}
< /code>
Это приводит к следующему дисплее. Обратите внимание, что кнопка здесь не центрируется. p>
Если я не обертываю столбец в виджет стека () и вместо этого использую: < /p>
Column(mainAxisAlignment: MainAxisAlignment.center,
Я получаю следующее, но мне нужна панель прогресса, чтобы остаться в верхней части экрана.
< /p>
Я также пытался использовать два столбца в рамках Sizebox (), и это тоже не работает. Спасибо!
мог бы использовать некоторую помощь здесь. Я пытался заставить это работать в Flutter, и попробовал несколько различных решений, которые я нашел в Интернете, ни один из которых не сработал. Мне нужна кнопка, которая сосредоточена на экране, чтобы перейти к нижней части страницы после нажатия. < /P> [code]class _ReportStressorState extends State { bool disableNextButton = false; List stressorForms = [];
@override Widget build(BuildContext context) { return Scaffold( body: Center( child: SizedBox( width: MediaQuery.of(context).size.width * 0.9, height: MediaQuery.of(context).size.height * 0.75, child: Stack( children: [ Column( children: [ const ProgressBar(numberOfStages: 4, currentStage: 2), Builder( builder: (BuildContext context) { if (stressorForms.isNotEmpty) { return Expanded( child: ListView.builder( itemCount: stressorForms.length, itemBuilder: (context, index) { return stressorForms[index]; }, ), ); } else { return const SizedBox.shrink(); } }, ), Align( alignment: Alignment.center, child: PlatformElevatedButton( onPressed: () { setState(() { stressorForms.add(const StressorForm()); }); disableNextButton = true; }, color: Colors.orange, child: Padding( padding: const EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0), child: Text("+ Add a stressor", style: TextStyle( fontSize: MediaQuery.of(context).size.width * 0.04, color: Colors.white)), ), ), ) ], ), ], ) ), ), ); } < /code> Это приводит к следующему дисплее. Обратите внимание, что кнопка здесь не центрируется. p> Если я не обертываю столбец в виджет стека () и вместо этого использую: < /p> Column(mainAxisAlignment: MainAxisAlignment.center, [/code] Я получаю следующее, но мне нужна панель прогресса, чтобы остаться в верхней части экрана. < /p> Я также пытался использовать два столбца в рамках Sizebox (), и это тоже не работает. Спасибо!