Postingan Keren Yang Bikinnya Pake Flutter di ZappRun ๐ฅ
Posting Foto Kekinian Lo!!
Feed 1: Halaman 1
๐ฅ Yo gengs, lagi scroll-scroll santuy nemu foto kece nih!
๐ธ Postingan ke-1 sampe ke-3 full vibes, siap-siap kepo ya!
๐ Swipe buat liat keindahan yang gak main-main!
#VibesMantul #FotoKeren #GenZModeOn
Feed 2: Halaman 2
Yo, squad! Lagi cari inspirasi biar feed makin kece?
๐ท Foto-foto kece dari feed 2 ini gak bakal bikin lo bosen, bro!
✨ Postingan kece yang siap nemenin hari lo!
#ScrollDuluBro #FeedKece #HypeAbis
Feed 3: Halaman 3
Bro sis, udah liat belum feed 3 kita?
๐ผ️ Gambar-gambar kece yang siap bikin mood lo naik!
๐ Jangan lupa like dan komen ya, biar makin seru!
#FeedHits #ChillVibesOnly #KepoTerus
Feed 4: Halaman 4
Nih ya, special feed buat lo yang suka vibe beda!
❤️ Feed 4 ini penuh dengan foto-foto yang bikin lo baper!
✨ Yuk, cekidot, dan temuin inspirasinya!
#LoveIt #FeedSpesial #AsikTerus
Splash Screen (Loading)
✌️ Bro, sabar bentar ya! Lagi loading vibes mantul sama lagu keren biar lo makin betah nunggu!
๐ง Dengerin sambil ngopi, siap-siap masuk ke dunia Instagram versi lo!
#LoadingSantuy #DengerinDulu #MantapJiwa
Kode Nya Disini Ya :
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:audioplayers/audio_cache.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Instagram Clone',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SplashScreen(),
debugShowCheckedModeBanner: false,
);
}
}
// ---------------- Splash Screen ----------------
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
late AudioPlayer _audioPlayer;
late AudioCache _audioCache;
@override
void initState() {
super.initState();
_audioPlayer = AudioPlayer();
_audioCache = AudioCache(prefix: 'assets/audio/', fixedPlayer: _audioPlayer);
_playAudio();
Timer(Duration(seconds: 10), () {
_audioPlayer.stop(); // Stop lagu saat masuk ke halaman utama
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => HomeNavigation()),
);
});
}
void _playAudio() {
_audioCache.play('audio1.mp3');
}
@override
void dispose() {
_audioPlayer.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset(
'assets/images/foto10.jpg',
width: 200,
height: 200,
),
),
);
}
}
// ---------------- Home Navigation & Feed ----------------
class HomeNavigation extends StatefulWidget {
@override
_HomeNavigationState createState() => _HomeNavigationState();
}
class _HomeNavigationState extends State<HomeNavigation> {
int _currentIndex = 0;
final List<Widget> _pages = [
PhotoFeedPage(title: 'Halaman 1', images: [
'assets/images/foto1.jpg',
'assets/images/foto2.jpg',
'assets/images/foto3.jpg',
]),
PhotoFeedPage(title: 'Halaman 2', images: [
'assets/images/foto4.jpg',
'assets/images/foto5.jpg',
'assets/images/foto6.jpg',
]),
PhotoFeedPage(title: 'Halaman 3', images: [
'assets/images/foto7.jpg',
'assets/images/foto8.jpg',
'assets/images/foto9.jpg',
]),
];
void _onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Instagram Feed ${_currentIndex + 1}'),
),
body: _pages[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
currentIndex: _currentIndex,
onTap: _onTabTapped,
items: [
BottomNavigationBarItem(
icon: Icon(Icons.photo_album),
label: 'Feed 1',
),
BottomNavigationBarItem(
icon: Icon(Icons.photo_camera),
label: 'Feed 2',
),
BottomNavigationBarItem(
icon: Icon(Icons.photo_library),
label: 'Feed 3',
),
],
),
);
}
}
class PhotoFeedPage extends StatelessWidget {
final String title;
final List<String> images;
const PhotoFeedPage({required this.title, required this.images});
@override
Widget build(BuildContext context) {
return ListView.builder(
padding: EdgeInsets.all(8),
itemCount: images.length,
itemBuilder: (context, index) {
return Card(
margin: EdgeInsets.symmetric(vertical: 10),
child: Column(
children: [
Image.asset(images[index]),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'Postingan ke-${index + 1} di $title',
style: TextStyle(fontSize: 16),
),
),
],
),
);
},
);
}
}
Mau liat hasil nya??
Ini dia hasilnya : https://zk1gk06zkk1gl.zapp.page/#/
*TUNGGU LOADING NYA 10 DETIK YA*
Komentar
Posting Komentar