我正在創建一個總共有 4 頁的 PageView。我想放置一個“下一步”按鈕,將用戶移動到登錄頁面,但該按鈕僅顯示在右下角的第 4 頁,而不會更改第 4 頁內容的位置。我怎樣才能做到這一點?
這是我的代碼
import 'package:flutter/material.dart';
import 'package:food_delivery/login_view/login_view.dart';
import 'package:food_delivery/onboarding_view/onboarding_page.dart';
class OnBoardingView extends StatelessWidget {
const OnBoardingView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Widget nextButton() {
return ElevatedButton(
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => LoginView(),
),
);
},
child: Text('Next'),
);
}
final PageController controller = PageController();
return PageView(
pageSnapping: true,
controller: controller,
children: [
OnBoardingPage(
image: 'assets/deliciousfood.png',
title: 'Delicious Food',
desc: 'Lorem ipsum'),
OnBoardingPage(
image: 'assets/fastshipping.png',
title: 'Fast Shipping',
desc: 'Lorem ipsum'),
OnBoardingPage(
image: 'assets/certificatefood.png',
title: 'Certificate Food',
desc: 'Lorem ipsum'),
OnBoardingPage(
image: 'assets/paymentonline.png',
title: 'Payment Online',
desc: 'Lorem ipsum'),
],
);
}
}
uj5u.com熱心網友回復:
在最后一頁上使用 Stack 小部件,孩子為
OnBoardingPage Align(alignment: Alignment.bottomRight, child: nextButton);
例如:
Scaffold(
backgroundColor: Colors.deepOrange,
appBar: AppBar(
backgroundColor: Colors.deepOrangeAccent,
title: const Text("S.O Playground"),
centerTitle: true,
),
body: SafeArea(
child: Stack(
children: [
const SizedBox(
height: double.infinity,
width: double.infinity,
child: Center(
child: Text(
"OnBoarding Page Details.",
style: TextStyle(color: Colors.white),
),
),
),
Align(
alignment: Alignment.bottomRight,
child: Padding(
padding: const EdgeInsets.only(right: 16),
child: ElevatedButton(
onPressed: () {},
child: const Text('Next'),
),
),
)
],
),
),
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395294.html
上一篇:Flutter:如何在youtube應用程式中制作導航欄?
下一篇:銳化濾波器和邊緣檢測核的關系?
