Commit 71e7fdd5 authored by Ade Fikriatul  Ilmi's avatar Ade Fikriatul Ilmi

add site title and scroll up

parent 51332105
...@@ -61,3 +61,9 @@ Future<List<dynamic>> getSettingDesc() async { ...@@ -61,3 +61,9 @@ Future<List<dynamic>> getSettingDesc() async {
Uri.parse('$qry/setting/getSettingByIdDesc')); Uri.parse('$qry/setting/getSettingByIdDesc'));
return jsonDecode(response.body)['data']; return jsonDecode(response.body)['data'];
} }
Future<dynamic> getSettingDesc2() async {
var response = await http.get(
Uri.parse('$qry/setting/getSettingByIdDesc'));
return jsonDecode(response.body)['data'];
}
\ No newline at end of file
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/api/setting_api.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart'; import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us2.dart'; import 'package:medapp_eksad/screen/contact_us/contact_us2.dart';
...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart'; ...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home2.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home2.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home3.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home3.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home4.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home4.dart';
import 'package:medapp_eksad/widget/Scroll_top.dart';
import 'package:medapp_eksad/widget/drawer.dart'; import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart'; import 'package:medapp_eksad/widget/whatsapp.dart';
...@@ -32,10 +35,26 @@ class HomePage extends StatefulWidget { ...@@ -32,10 +35,26 @@ class HomePage extends StatefulWidget {
} }
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
// Untuk pake PAGE per index
PageController controller = PageController();
void _scrollToIndex2(int index) {
controller.animateToPage(index,
duration: const Duration(seconds: 2),
curve: Curves.fastLinearToSlowEaseIn);
}
// Untuk pake LIST per height container
ScrollController controller2 = ScrollController();
void _scrollToIndex(double index) {
controller2.animateTo(index,
duration: const Duration(seconds: 1),
curve: Curves.fastLinearToSlowEaseIn);
}
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
setPageTitle('MedApp by Eksad', context); // setPageTitle('MedApp by Eksad', context);
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
...@@ -46,19 +65,40 @@ class _HomePageState extends State<HomePage> { ...@@ -46,19 +65,40 @@ class _HomePageState extends State<HomePage> {
Colors.black, Colors.black, Colors.black), Colors.black, Colors.black, Colors.black),
drawer: const DrawerMedApp(), drawer: const DrawerMedApp(),
body: ResponsiveWidget.isSmallScreen(context) body: ResponsiveWidget.isSmallScreen(context)
? ListView( ? Stack(
children: const [ children: [
SmallHome1(), Title(
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
SmallHome1(wijet: Button_scroll_small()),
SmallHome2(), SmallHome2(),
SmallHome3(), SmallHome3(),
SmallHome4(), SmallHome4(),
ContactUs2_small(), ContactUs2_small(),
FooterSmall(), FooterSmall(),
], ],
),
),
ScrollUpButton(controller2),
],
) )
: ListView( : Stack(
children: [ children: [
const Home1(), FutureBuilder<dynamic>(
future: getSettingDesc2(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
return Title(
title: pgm['title'],
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
Home1(wijet: Button_scroll()),
const Home2(), const Home2(),
const Home3(), const Home3(),
const Home4(), const Home4(),
...@@ -67,6 +107,44 @@ class _HomePageState extends State<HomePage> { ...@@ -67,6 +107,44 @@ class _HomePageState extends State<HomePage> {
], ],
), ),
); );
},
),
ScrollUpButton(controller2),
],
),
);
}
ElevatedButton Button_scroll() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(3780);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8),
),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 17, letterSpacing: 2, fontWeight: FontWeight.w500),
),
);
}
ElevatedButton Button_scroll_small() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(5410);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8), fixedSize: const Size(50, 20)),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 15, letterSpacing: 1.5, fontWeight: FontWeight.w500),
),
);
} }
AppBar AppBarKecil() { AppBar AppBarKecil() {
......
...@@ -40,7 +40,7 @@ class MyApp extends StatelessWidget { ...@@ -40,7 +40,7 @@ class MyApp extends StatelessWidget {
], ],
child: MaterialApp( child: MaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
title: "MedApp by Eksad", // title: "MedApp by Eksad",
initialRoute: '/', initialRoute: '/',
routes: { routes: {
'/': (context) => const HomePage(), '/': (context) => const HomePage(),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/api/setting_api.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart'; import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us2.dart'; import 'package:medapp_eksad/screen/contact_us/contact_us2.dart';
...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart'; ...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home2.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home2.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home3.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home3.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home4.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home4.dart';
import 'package:medapp_eksad/widget/Scroll_top.dart';
import 'package:medapp_eksad/widget/drawer.dart'; import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart'; import 'package:medapp_eksad/widget/whatsapp.dart';
...@@ -32,10 +35,26 @@ class AboutUs extends StatefulWidget { ...@@ -32,10 +35,26 @@ class AboutUs extends StatefulWidget {
} }
class _AboutUsState extends State<AboutUs> { class _AboutUsState extends State<AboutUs> {
// Untuk pake PAGE per index
PageController controller = PageController();
void _scrollToIndex2(int index) {
controller.animateToPage(index,
duration: const Duration(seconds: 2),
curve: Curves.fastLinearToSlowEaseIn);
}
// Untuk pake LIST per height container
ScrollController controller2 = ScrollController();
void _scrollToIndex(double index) {
controller2.animateTo(index,
duration: const Duration(seconds: 1),
curve: Curves.fastLinearToSlowEaseIn);
}
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
setPageTitle('About Us', context); // setPageTitle('About Us', context);
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
...@@ -45,20 +64,42 @@ class _AboutUsState extends State<AboutUs> { ...@@ -45,20 +64,42 @@ class _AboutUsState extends State<AboutUs> {
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.blue, : AppbarHomeLarge(screenSize, context, Colors.black, Colors.blue,
Colors.black, Colors.black, Colors.black), Colors.black, Colors.black, Colors.black),
drawer: const DrawerMedApp(), drawer: const DrawerMedApp(),
body: ResponsiveWidget.isSmallScreen(context) body: ResponsiveWidget.isSmallScreen(context)
? ListView( ? Stack(
children: const [ children: [
SmallHome1(), Title(
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
SmallHome1(wijet: Button_scroll_small()),
SmallHome2(), SmallHome2(),
SmallHome3(), SmallHome3(),
SmallHome4(), SmallHome4(),
ContactUs2_small(), ContactUs2_small(),
FooterSmall(), FooterSmall(),
], ],
),
),
ScrollUpButton(controller2),
],
) )
: ListView( : Stack(
children: [ children: [
const Home1(), FutureBuilder<dynamic>(
future: getSettingDesc2(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
return Title(
title: pgm['title'],
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
Home1(wijet: Button_scroll()),
const Home2(), const Home2(),
const Home3(), const Home3(),
const Home4(), const Home4(),
...@@ -67,6 +108,44 @@ class _AboutUsState extends State<AboutUs> { ...@@ -67,6 +108,44 @@ class _AboutUsState extends State<AboutUs> {
], ],
), ),
); );
},
),
ScrollUpButton(controller2),
],
),
);
}
ElevatedButton Button_scroll() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(3780);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8),
),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 17, letterSpacing: 2, fontWeight: FontWeight.w500),
),
);
}
ElevatedButton Button_scroll_small() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(5410);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8), fixedSize: const Size(50, 20)),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 15, letterSpacing: 1.5, fontWeight: FontWeight.w500),
),
);
} }
AppBar AppBarKecil() { AppBar AppBarKecil() {
......
...@@ -87,78 +87,21 @@ class Footer extends StatelessWidget { ...@@ -87,78 +87,21 @@ class Footer extends StatelessWidget {
), ),
), ),
const Spacer( const Spacer(
flex: 1, flex: 2,
), ),
Container( Container(
width: screenSize.width * 0.14, width: screenSize.width * 0.16,
height: screenSize.height * 0.03, height: screenSize.height * 0.03,
//color: Colors.blue, //color: Colors.blue,
child: FutureBuilder<List<dynamic>>( child: Row(
future: getSosmedDesc(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
if (snapshot.hasError ||
snapshot.data == null ||
snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
}
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: const [
IconButton( ApiLinkedin(),
onPressed: () { ApiTwitter(),
ln = pgm['linkedin']; ApiInstagram(),
launch(ln); ApiYoutube()
// _launchLinkedIn();
},
icon: const Icon(
FontAwesomeIcons.linkedinIn,
size: 25,
),
iconSize: 25,
color: Colors.black),
IconButton(
onPressed: () {
tw = pgm['twitter'];
launch(tw);
//_launchTwitter();
},
icon: const Icon(
FontAwesomeIcons.twitter,
size: 25,
),
iconSize: 25,
color: Colors.black,
),
IconButton(
onPressed: () {
ig = pgm['instagram'];
launch(ig);
// _launchInstagram();
},
icon: const Icon(
FontAwesomeIcons.instagram,
size: 25,
),
iconSize: 25,
color: Colors.black),
IconButton(
onPressed: () {
yt = pgm['youtube'];
launch(yt);
// _launchYoutube();
},
icon: const Icon(
FontAwesomeIcons.youtube,
size: 25,
),
iconSize: 25,
color: Colors.black)
], ],
);
},
), ),
), ),
const Spacer( const Spacer(
flex: 8, flex: 8,
...@@ -366,6 +309,153 @@ class itemBawah extends StatelessWidget { ...@@ -366,6 +309,153 @@ class itemBawah extends StatelessWidget {
} }
} }
class ApiLinkedin extends StatefulWidget {
const ApiLinkedin({Key? key}) : super(key: key);
@override
State<ApiLinkedin> createState() => _ApiLinkedinState();
}
class _ApiLinkedinState extends State<ApiLinkedin> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<dynamic>>(
future: getLnDesc(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
if (snapshot.hasError ||
snapshot.data == null ||
snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
}
return IconButton(
onPressed: () {
// ln = ;
launch(pgm['linkedin']);
// _launchLinkedIn();
},
icon: const Icon(
FontAwesomeIcons.linkedinIn,
size: 25,
),
iconSize: 35,
color: Colors.black);
},
);
}
}
class ApiTwitter extends StatefulWidget {
const ApiTwitter({Key? key}) : super(key: key);
@override
State<ApiTwitter> createState() => _ApiTwitterState();
}
class _ApiTwitterState extends State<ApiTwitter> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<dynamic>>(
future: getTwDesc(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
if (snapshot.hasError ||
snapshot.data == null ||
snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
}
return IconButton(
onPressed: () {
// ln = ;
launch(pgm['twitter']);
// _launchLinkedIn();
},
icon: const Icon(
FontAwesomeIcons.twitter,
size: 25,
),
iconSize: 35,
color: Colors.black);
},
);
}
}
class ApiInstagram extends StatefulWidget {
const ApiInstagram({Key? key}) : super(key: key);
@override
State<ApiInstagram> createState() => _ApiInstagramState();
}
class _ApiInstagramState extends State<ApiInstagram> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<dynamic>>(
future: getIgDesc(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
if (snapshot.hasError ||
snapshot.data == null ||
snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
}
return IconButton(
onPressed: () {
// ln = ;
launch(pgm['instagram']);
// _launchLinkedIn();
},
icon: const Icon(
FontAwesomeIcons.instagram,
size: 25,
),
iconSize: 35,
color: Colors.black);
},
);
}
}
class ApiYoutube extends StatefulWidget {
const ApiYoutube({Key? key}) : super(key: key);
@override
State<ApiYoutube> createState() => _ApiYoutubeState();
}
class _ApiYoutubeState extends State<ApiYoutube> {
@override
Widget build(BuildContext context) {
return FutureBuilder<List<dynamic>>(
future: getYtDesc(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
if (snapshot.hasError ||
snapshot.data == null ||
snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
}
return IconButton(
onPressed: () {
// ln = ;
launch(pgm['youtube']);
// _launchLinkedIn();
},
icon: const Icon(
FontAwesomeIcons.youtube,
size: 25,
),
iconSize: 35,
color: Colors.black);
});
}
}
class TelphoneApi extends StatefulWidget { class TelphoneApi extends StatefulWidget {
const TelphoneApi({Key? key}) : super(key: key); const TelphoneApi({Key? key}) : super(key: key);
......
...@@ -6,7 +6,8 @@ import 'package:medapp_eksad/widget/button_color.dart'; ...@@ -6,7 +6,8 @@ import 'package:medapp_eksad/widget/button_color.dart';
import 'package:show_up_animation/show_up_animation.dart'; import 'package:show_up_animation/show_up_animation.dart';
class Home1 extends StatelessWidget { class Home1 extends StatelessWidget {
const Home1({Key? key}) : super(key: key); Home1({Key? key, required this.wijet}) : super(key: key);
final Widget wijet;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
...@@ -3,9 +3,9 @@ import 'package:google_fonts/google_fonts.dart'; ...@@ -3,9 +3,9 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/widget/button_color.dart'; import 'package:medapp_eksad/widget/button_color.dart';
import 'package:show_up_animation/show_up_animation.dart'; import 'package:show_up_animation/show_up_animation.dart';
class SmallHome1 extends StatelessWidget { class SmallHome1 extends StatelessWidget {
const SmallHome1({Key? key}) : super(key: key); SmallHome1({Key? key, required this.wijet}) : super(key: key);
final Widget wijet;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/api/setting_api.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart'; import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us2.dart'; import 'package:medapp_eksad/screen/contact_us/contact_us2.dart';
...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart'; ...@@ -12,6 +14,7 @@ import 'package:medapp_eksad/screen_small/small_home/small_home1.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home2.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home2.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home3.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home3.dart';
import 'package:medapp_eksad/screen_small/small_home/small_home4.dart'; import 'package:medapp_eksad/screen_small/small_home/small_home4.dart';
import 'package:medapp_eksad/widget/Scroll_top.dart';
import 'package:medapp_eksad/widget/drawer.dart'; import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart'; import 'package:medapp_eksad/widget/whatsapp.dart';
...@@ -32,10 +35,26 @@ class HomePageUser extends StatefulWidget { ...@@ -32,10 +35,26 @@ class HomePageUser extends StatefulWidget {
} }
class _HomePageUserState extends State<HomePageUser> { class _HomePageUserState extends State<HomePageUser> {
// Untuk pake PAGE per index
PageController controller = PageController();
void _scrollToIndex2(int index) {
controller.animateToPage(index,
duration: const Duration(seconds: 2),
curve: Curves.fastLinearToSlowEaseIn);
}
// Untuk pake LIST per height container
ScrollController controller2 = ScrollController();
void _scrollToIndex(double index) {
controller2.animateTo(index,
duration: const Duration(seconds: 1),
curve: Curves.fastLinearToSlowEaseIn);
}
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
setPageTitle('MedApp by Eksad', context); // setPageTitle('MedApp by Eksad', context);
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
...@@ -46,19 +65,40 @@ class _HomePageUserState extends State<HomePageUser> { ...@@ -46,19 +65,40 @@ class _HomePageUserState extends State<HomePageUser> {
Colors.black, Colors.black, Colors.black), Colors.black, Colors.black, Colors.black),
drawer: const DrawerMedApp(), drawer: const DrawerMedApp(),
body: ResponsiveWidget.isSmallScreen(context) body: ResponsiveWidget.isSmallScreen(context)
? ListView( ? Stack(
children: const [ children: [
SmallHome1(), Title(
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
SmallHome1(wijet: Button_scroll_small()),
SmallHome2(), SmallHome2(),
SmallHome3(), SmallHome3(),
SmallHome4(), SmallHome4(),
ContactUs2_small(), ContactUs2_small(),
FooterSmall(), FooterSmall(),
], ],
),
),
ScrollUpButton(controller2),
],
) )
: ListView( : Stack(
children: [ children: [
const Home1(), FutureBuilder<dynamic>(
future: getSettingDesc2(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
var pgm = snapshot.data[0];
return Title(
title: pgm['title'],
color: Colors.white,
child: ListView(
scrollDirection: Axis.vertical,
controller: controller2,
children: [
Home1(wijet: Button_scroll()),
const Home2(), const Home2(),
const Home3(), const Home3(),
const Home4(), const Home4(),
...@@ -67,6 +107,44 @@ class _HomePageUserState extends State<HomePageUser> { ...@@ -67,6 +107,44 @@ class _HomePageUserState extends State<HomePageUser> {
], ],
), ),
); );
},
),
ScrollUpButton(controller2),
],
),
);
}
ElevatedButton Button_scroll() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(3780);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8),
),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 17, letterSpacing: 2, fontWeight: FontWeight.w500),
),
);
}
ElevatedButton Button_scroll_small() {
return ElevatedButton(
onPressed: () {
_scrollToIndex(5410);
},
style: ElevatedButton.styleFrom(
primary: const Color(0xff1e5ea8), fixedSize: const Size(50, 20)),
child: Text(
'CONTACT US',
style: GoogleFonts.poppins(
fontSize: 15, letterSpacing: 1.5, fontWeight: FontWeight.w500),
),
);
} }
AppBar AppBarKecil() { AppBar AppBarKecil() {
......
import 'package:flutter/material.dart';
class ScrollUpButton extends StatefulWidget {
const ScrollUpButton(this.controller);
final ScrollController controller;
@override
_ScrollUpButtonState createState() => _ScrollUpButtonState();
}
class _ScrollUpButtonState extends State<ScrollUpButton> {
bool _showScrollUp = false;
@override
void initState() {
super.initState();
widget.controller.addListener(() {
if (widget.controller.position.pixels > 150 && !_showScrollUp) {
setState(() {
_showScrollUp = true;
});
} else if (widget.controller.position.pixels < 150 && _showScrollUp) {
setState(() {
_showScrollUp = false;
});
}
// On GitHub there was a question on how to determine the event
// of widget being scrolled to the bottom. Here's the sample
// if (widget.controller.position.hasViewportDimension &&
// widget.controller.position.pixels >=
// widget.controller.position.maxScrollExtent - 0.01) {
// print('Scrolled to bottom');
//}
});
}
@override
Widget build(BuildContext context) {
return _showScrollUp
? Positioned(
right:20,
bottom: 170,
child: OutlinedButton(
onPressed: () => widget.controller.animateTo(0,
duration: const Duration(milliseconds: 300),
curve: Curves.easeIn),
style: ButtonStyle(
fixedSize: MaterialStateProperty.all(Size(30, 30)),
backgroundColor: MaterialStateProperty.all(Colors.grey[50]),
foregroundColor: MaterialStateProperty.all(Colors.black)),
child: Icon(Icons.arrow_circle_up,color: Colors.grey,)
//child: const Text('Go\nTop',textAlign: TextAlign.center,),
))
: const SizedBox();
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment