Добавить переход к элементам страницы по нажатию кнопки flutter
есть код написанный на dart, подскажите как мне по нажатию кнопки сделать переход к нужному элементу страницы. есть 4 кнопки и 4 раздела одной страницы "MAIN" "SKILS" "PROJECT" и "INFO".
import 'package:flutter/material.dart';
import 'package:my_web_portfolio/constant/colors.dart';
import 'package:my_web_portfolio/widget/drawer_mobile.dart';
import 'package:my_web_portfolio/widget/header_desctop.dart';
import 'package:my_web_portfolio/widget/header_mobile.dart';
import 'package:my_web_portfolio/widget/info_desktop.dart';
import 'package:my_web_portfolio/widget/info_mobile.dart';
import 'package:my_web_portfolio/widget/main_desctop.dart';
import 'package:my_web_portfolio/widget/main_mobile.dart';
import 'package:my_web_portfolio/widget/project_desctop.dart';
import 'package:my_web_portfolio/widget/site_logo.dart';
import 'package:my_web_portfolio/widget/skils_desctop.dart';
import 'package:my_web_portfolio/widget/skils_mobile.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final scaffoldKey = GlobalKey<ScaffoldState>();
final scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
return Scaffold(
key: scaffoldKey,
backgroundColor: CustomColor.scaffoldBg,
endDrawer:constraints.maxWidth >= 600?null: const DrawerMobile(),
body: SingleChildScrollView(
controller: scrollController,
scrollDirection: Axis.vertical,
child: Column(
children: [
//TOPBAR
if (constraints.maxWidth >= 600)
const HeaderDesctop() else
HeaderMobile(
onLogoTab: (){
},
onMenuTab: (){
scaffoldKey.currentState?.openEndDrawer();
},),
//MAIN
if (constraints.maxWidth >= 750)
const MainDesctop() else
MainMobile(),
//SKILS
if (constraints.maxWidth >= 930)
const SkilsDesctop() else
SkilsMobile(),
//PROJECT
ProjectDesctop(),
//INFO
if (constraints.maxWidth >= 750)
const InfoDesktop() else
InfoMobile(),
],
),
),
);
}
);
}
}