diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index f5b0f50..99bbf2b 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -8,7 +8,7 @@ plugins { android { namespace = "com.example.furibase" //compileSdk = flutter.compileSdkVersion - compileSdk = 34 + compileSdk = 35 ndkVersion = "27.0.12077973" //ndkVersion = flutter.ndkVersion @@ -29,7 +29,7 @@ android { //minSdk = flutter.minSdkVersion //targetSdk = flutter.targetSdkVersion minSdk = 24 // Set to 24 or higher - targetSdk = 34 + targetSdk = 35 versionCode = flutter.versionCode versionName = flutter.versionName } diff --git a/lib/components/card_list.dart b/lib/components/card_list.dart index 0eb6750..66aa5e6 100644 --- a/lib/components/card_list.dart +++ b/lib/components/card_list.dart @@ -19,7 +19,7 @@ class CardList extends StatelessWidget { 10.0, ), // Opsional: membuat gambar lebih rounded child: Image.asset( - 'images/cepott.png', // Ganti dengan path gambar Anda + 'assets/images/cepott.png', // Ganti dengan path gambar Anda width: 80, // Atur ukuran gambar height: 120, fit: BoxFit.cover, diff --git a/lib/components/collection_container copy.dart b/lib/components/collection_container copy.dart index c38b988..44969d7 100644 --- a/lib/components/collection_container copy.dart +++ b/lib/components/collection_container copy.dart @@ -13,6 +13,7 @@ class CollectionContainer extends StatelessWidget { final Color? textColor; final double? lblSize; final bool? circle; + final Color? colorContiner; const CollectionContainer({ super.key, this.label, @@ -26,6 +27,7 @@ class CollectionContainer extends StatelessWidget { this.iconw, this.lblSize, this.circle, + this.colorContiner, }); @override @@ -96,7 +98,7 @@ class CollectionContainer extends StatelessWidget { width: 20, height: 20, colorFilter: const ColorFilter.mode( - Color.fromARGB(255, 118, 3, 3), + Color.fromARGB(255, 255, 255, 255), BlendMode.srcIn, ), ), diff --git a/lib/components/collection_container.dart b/lib/components/collection_container.dart index 47bb831..a6508b6 100644 --- a/lib/components/collection_container.dart +++ b/lib/components/collection_container.dart @@ -14,6 +14,7 @@ class CollectionContainer extends StatelessWidget { final double? lblSize; final bool? circle; final Color? colorContiner; + final bool? small; const CollectionContainer({ Key? key, @@ -29,6 +30,7 @@ class CollectionContainer extends StatelessWidget { this.lblSize, this.circle, this.colorContiner, + this.small, }) : super(key: key); @override @@ -55,7 +57,10 @@ class CollectionContainer extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: Center( child: Padding( - padding: const EdgeInsets.only(bottom: 30.0), + padding: + (small ?? false) + ? const EdgeInsets.only(bottom: 5.0) + : const EdgeInsets.only(bottom: 30.0), child: imageSvg != null && imageSvg!.isNotEmpty ? Container( @@ -72,9 +77,10 @@ class CollectionContainer extends StatelessWidget { ) : null, child: Padding( - padding: const EdgeInsets.all( - 8.0, - ), // Tambahkan padding di sini + padding: + (small ?? false) + ? const EdgeInsets.all(1.0) + : const EdgeInsets.all(8.0), child: SvgPicture.asset( imageSvg!, width: iconw ?? 40, @@ -102,7 +108,7 @@ class CollectionContainer extends StatelessWidget { ), ), Positioned( - bottom: 10, + bottom: (small ?? false) ? 0 : 10, left: 0, right: 0, child: Text( diff --git a/lib/components/main_menu.dart b/lib/components/main_menu.dart index c38ec06..8c8eb7a 100644 --- a/lib/components/main_menu.dart +++ b/lib/components/main_menu.dart @@ -22,7 +22,7 @@ class MainMenu extends StatelessWidget { children: [ MenuButton( label: "E-furibuddy", - icon: 'icons/furrybuddy.svg', + icon: 'assets/icons/furrybuddy.svg', onPress: () => { Navigator.push( @@ -33,7 +33,7 @@ class MainMenu extends StatelessWidget { ), MenuButton( label: "Koleksi", - icon: 'icons/koleksi.svg', + icon: 'assets/icons/Koleksi.svg', onPress: () => { Navigator.push( @@ -45,7 +45,7 @@ class MainMenu extends StatelessWidget { SizedBox(width: 120), MenuButton( label: "Pustaka", - icon: 'icons/Pustaka.svg', + icon: 'assets/icons/Pustaka.svg', onPress: () => { Navigator.push( @@ -56,7 +56,7 @@ class MainMenu extends StatelessWidget { ), MenuButton( label: "Saya", - icon: 'icons/Saya.svg', + icon: 'assets/icons/Saya.svg', onPress: () => { Navigator.push( diff --git a/lib/components/scan_button.dart b/lib/components/scan_button.dart index e352f75..907ac8a 100644 --- a/lib/components/scan_button.dart +++ b/lib/components/scan_button.dart @@ -7,25 +7,25 @@ class ScanButton extends StatelessWidget { @override Widget build(BuildContext context) { - return Expanded( - child: Container( - decoration: BoxDecoration( - shape: BoxShape.circle, - color: const Color.fromARGB(223, 67, 63, 179), - ), - padding: EdgeInsets.all(10), - child: IconButton( - icon: SvgPicture.asset( - 'icons/Scan.svg', - width: 60, - height: 60, - colorFilter: ColorFilter.mode( - Color.fromARGB(255, 217, 219, 227), - BlendMode.srcIn, - ), + return Container( + width: 96, + height: 96, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: const Color.fromARGB(223, 67, 63, 179), + ), + padding: EdgeInsets.all(10), + child: IconButton( + icon: SvgPicture.asset( + 'assets/icons/Scan.svg', + width: 60, + height: 60, + colorFilter: ColorFilter.mode( + Color.fromARGB(255, 217, 219, 227), + BlendMode.srcIn, ), - onPressed: () {}, ), + onPressed: () {}, ), ); } diff --git a/lib/components/tab_menu.dart b/lib/components/tab_menu.dart index 185adee..02f51ab 100644 --- a/lib/components/tab_menu.dart +++ b/lib/components/tab_menu.dart @@ -24,8 +24,8 @@ class TabMenuButton extends StatelessWidget { IconButton( icon: SvgPicture.asset( icon!, - width: 28, - height: 28, + width: 20, + height: 20, colorFilter: ColorFilter.mode( isSelected ? const Color.fromARGB(255, 106, 24, 207) @@ -38,7 +38,7 @@ class TabMenuButton extends StatelessWidget { GestureDetector( onTap: onPress, // Menggunakan satu event handler saja child: Container( - width: 120, + width: 110, padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), decoration: BoxDecoration( color: diff --git a/lib/main.dart b/lib/main.dart index bd53647..5992fd6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,11 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:furibase/components/navbar_container.dart'; +import 'package:flutter/services.dart'; import 'package:furibase/providers/character_provider.dart'; import 'package:furibase/screen/Home_screen.dart'; -import 'package:furibase/screen/drraw_screen.dart'; import 'package:provider/provider.dart'; void main() { + WidgetsFlutterBinding.ensureInitialized(); + + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); runApp(const MyApp()); } diff --git a/lib/screen/Home_screen.dart b/lib/screen/Home_screen.dart index 7f1fd44..1bfe52d 100644 --- a/lib/screen/Home_screen.dart +++ b/lib/screen/Home_screen.dart @@ -4,7 +4,6 @@ import 'package:furibase/components/bottom_navbar.dart'; import 'package:furibase/components/buildcard_info.dart'; import 'package:furibase/components/main_menu.dart'; import 'package:furibase/components/scan_button.dart'; -import 'package:furibase/components/topbar_container.dart'; class HomeScreen extends StatefulWidget { HomeScreen({super.key}); @@ -71,11 +70,13 @@ class _HomeScreenState extends State { body: Stack( children: [ Positioned.fill( - child: Container( - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("images/background.jpeg"), - fit: BoxFit.cover, + child: RepaintBoundary( + child: Container( + decoration: const BoxDecoration( + image: const DecorationImage( + image: AssetImage("assets/images/background.jpeg"), + fit: BoxFit.cover, + ), ), ), ), @@ -107,7 +108,7 @@ class _HomeScreenState extends State { decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), image: const DecorationImage( - image: AssetImage('images/luffy-u.png'), + image: AssetImage('assets/images/luffy-u.png'), fit: BoxFit.cover, ), ), @@ -220,7 +221,7 @@ class _HomeScreenState extends State { ), ), SizedBox(height: 10), - setHomeImage("images/luffy.png", 300), + setHomeImage("assets/images/luffy.png", 300), // Image.asset("images/luffy.png", width: 300), ], ), diff --git a/lib/screen/collection/collection_caracter_screen.dart b/lib/screen/collection/collection_caracter_screen.dart index 1e7073e..d6629b3 100644 --- a/lib/screen/collection/collection_caracter_screen.dart +++ b/lib/screen/collection/collection_caracter_screen.dart @@ -24,50 +24,56 @@ class _CollectionCaraterScreenState extends State { children: [ Text("Favorite", style: TextStyle(color: Colors.black)), Divider(height: 20, color: Colors.transparent), - Row( - // alignment: WrapAlignment.spaceAround, - spacing: 10, // Horizontal spacing between the containers - // runSpacing: 10, // Vertical spacing between lines - children: [ - CollectionContainer( - label: "Luffy", - imagesrc: 'images/luffy.png', - colorContiner: Color.fromRGBO(12, 199, 215, 1), - onTapAc: () => {}, - ), - CollectionContainer( - label: "Oni Chan", - imagesrc: 'images/klipartz.png', - onTapAc: () => {}, - ), - ], + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + // alignment: WrapAlignment.spaceAround, + spacing: 10, // Horizontal spacing between the containers + // runSpacing: 10, // Vertical spacing between lines + children: [ + CollectionContainer( + label: "Luffy", + imagesrc: 'assets/images/luffy.png', + colorContiner: Color.fromRGBO(12, 199, 215, 1), + onTapAc: () => {}, + ), + CollectionContainer( + label: "Oni Chan", + imagesrc: 'assets/images/klipartz.png', + onTapAc: () => {}, + ), + ], + ), ), Divider(height: 20, color: Colors.transparent), Text("All", style: TextStyle(color: Colors.black)), Divider(height: 20, color: Colors.transparent), - Row( - // alignment: WrapAlignment.spaceAround, - spacing: 10, // Horizontal spacing between the containers - // runSpacing: 10, // Vertical spacing between lines - children: [ - CollectionContainer( - label: "Luffy", - imagesrc: 'images/luffy.png', - colorContiner: Color.fromRGBO(12, 199, 215, 1), - onTapAc: () => {}, - ), - CollectionContainer( - label: "Oni Chan", - imagesrc: 'images/klipartz.png', - onTapAc: () => {}, - ), - CollectionContainer( - label: "Cepot", - imagesrc: 'images/cepott.png', - colorContiner: Color.fromRGBO(237, 207, 100, 1.0), - onTapAc: () => {}, - ), - ], + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + // alignment: WrapAlignment.spaceAround, + spacing: 10, // Horizontal spacing between the containers + // runSpacing: 10, // Vertical spacing between lines + children: [ + CollectionContainer( + label: "Luffy", + imagesrc: 'assets/images/luffy.png', + colorContiner: Color.fromRGBO(12, 199, 215, 1), + onTapAc: () => {}, + ), + CollectionContainer( + label: "Oni Chan", + imagesrc: 'assets/images/klipartz.png', + onTapAc: () => {}, + ), + CollectionContainer( + label: "Cepot", + imagesrc: 'assets/images/cepott.png', + colorContiner: Color.fromRGBO(237, 207, 100, 1.0), + onTapAc: () => {}, + ), + ], + ), ), ], ), diff --git a/lib/screen/collection/collection_fragment_screen.dart b/lib/screen/collection/collection_fragment_screen.dart index 0899239..cf17f8d 100644 --- a/lib/screen/collection/collection_fragment_screen.dart +++ b/lib/screen/collection/collection_fragment_screen.dart @@ -29,13 +29,13 @@ class _CollectionFragmentScreenState extends State { children: [ CollectionContainer( label: "Luffy", - imagesrc: 'images/ft_luffy.png', + imagesrc: 'assets/images/ft_luffy.png', onTapAc: () => {}, colorContiner: ColorHelper.hexToColor("0xE2E5E9"), ), CollectionContainer( label: "Oni Chan", - imagesrc: 'images/ft_cepot.png', + imagesrc: 'assets/images/ft_cepot.png', onTapAc: () => {}, colorContiner: ColorHelper.hexToColor("0xE2E5E9"), ), diff --git a/lib/screen/collection/collection_skin_screen.dart b/lib/screen/collection/collection_skin_screen.dart index efa880a..941f5eb 100644 --- a/lib/screen/collection/collection_skin_screen.dart +++ b/lib/screen/collection/collection_skin_screen.dart @@ -11,8 +11,9 @@ class CollectionSkinScreen extends StatefulWidget { class _CollectionSkinScreenState extends State { @override Widget build(BuildContext context) { - return SingleChildScrollView( - scrollDirection: Axis.horizontal, + return Container( + // scrollDirection: Axis.horizontal, + height: MediaQuery.of(context).size.height, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -21,56 +22,57 @@ class _CollectionSkinScreenState extends State { padding: EdgeInsets.only(top: 40, left: 20, right: 20, bottom: 20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ Text("Luffy", style: TextStyle(color: Colors.black)), Divider(height: 10), - Row( - // alignment: WrapAlignment.start, - spacing: 10, // Horizontal spacing between the containers - // runSpacing: 10, // Vertical spacing between lines - children: [ - CollectionContainer( - label: "Luffy Kimono", - imagesrc: 'images/luffy-kimono.png', - colorContiner: Color.fromRGBO(12, 199, 215, 1), - onTapAc: () => {}, - ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + spacing: 10, // Horizontal spacing between the containers + children: [ + CollectionContainer( + label: "Luffy Kimono", + imagesrc: 'assets/images/luffy-kimono.png', + colorContiner: Color.fromRGBO(12, 199, 215, 1), + onTapAc: () => {}, + ), - CollectionContainer( - label: "Luffy (Default)", - imagesrc: 'images/luffy.png', - colorContiner: Color.fromRGBO(12, 199, 215, 1), - onTapAc: () => {}, - ), - CollectionContainer( - label: "Luffy King", - imagesrc: 'images/luffy-king.png', - colorContiner: Color.fromRGBO(12, 199, 215, 1), - onTapAc: () => {}, - ), - ], + CollectionContainer( + label: "Luffy (Default)", + imagesrc: 'assets/images/luffy.png', + colorContiner: Color.fromRGBO(12, 199, 215, 1), + onTapAc: () => {}, + ), + CollectionContainer( + label: "Luffy King", + imagesrc: 'assets/images/luffy-king.png', + colorContiner: Color.fromRGBO(12, 199, 215, 1), + onTapAc: () => {}, + ), + ], + ), ), Divider(height: 20, color: Colors.transparent), Text("Others", style: TextStyle(color: Colors.black)), Divider(height: 10), - Row( - // alignment: WrapAlignment.start, - spacing: 10, // Horizontal spacing between the containers - // runSpacing: 10, // Vertical spacing between lines - children: [ - CollectionContainer( - label: "Oni Chan (Default)", - imagesrc: 'images/klipartz.png', - onTapAc: () => {}, - ), - CollectionContainer( - label: "Cepot (Default)", - imagesrc: 'images/cepott.png', - colorContiner: Color.fromRGBO(237, 207, 100, 1.0), - onTapAc: () => {}, - ), - ], + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + spacing: 10, + children: [ + CollectionContainer( + label: "Oni Chan (Default)", + imagesrc: 'assets/images/klipartz.png', + onTapAc: () => {}, + ), + CollectionContainer( + label: "Cepot (Default)", + imagesrc: 'assets/images/cepott.png', + colorContiner: Color.fromRGBO(237, 207, 100, 1.0), + onTapAc: () => {}, + ), + ], + ), ), ], ), diff --git a/lib/screen/koleksi_screen.dart b/lib/screen/koleksi_screen.dart index 468972f..bf3628d 100644 --- a/lib/screen/koleksi_screen.dart +++ b/lib/screen/koleksi_screen.dart @@ -36,6 +36,7 @@ class _KoleksiScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( + extendBody: true, body: Stack( children: [ Positioned.fill( @@ -115,9 +116,9 @@ class _KoleksiScreenState extends State { // ), // ), Positioned( - top: 80, - left: 40, - right: 40, + top: 70, + left: 10, + right: 10, child: Container( // decoration: const BoxDecoration( // borderRadius: BorderRadius.all(Radius.circular(20)), diff --git a/lib/screen/pustaka/list_detail_screen.dart b/lib/screen/pustaka/list_detail_screen.dart index a77cd16..eec5a43 100644 --- a/lib/screen/pustaka/list_detail_screen.dart +++ b/lib/screen/pustaka/list_detail_screen.dart @@ -39,7 +39,7 @@ class _ListDetailScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.asset( - 'images/default.png', // Ganti dengan gambar yang sesuai + 'assets/images/default.png', // Ganti dengan gambar yang sesuai width: 100, height: 100, fit: BoxFit.cover, diff --git a/lib/screen/pustaka/list_education.dart b/lib/screen/pustaka/list_education.dart index 1f75386..6b95557 100644 --- a/lib/screen/pustaka/list_education.dart +++ b/lib/screen/pustaka/list_education.dart @@ -4,6 +4,7 @@ import 'package:furibase/components/card_list.dart'; import 'package:furibase/components/collection_container%20copy.dart'; import 'package:furibase/components/main_menu.dart'; import 'package:furibase/components/topbar_container.dart'; +import 'package:furibase/helpers/color_helper.dart'; import 'package:furibase/screen/pustaka/pustaka_detail_screen.dart'; class ListEducation extends StatefulWidget { @@ -43,13 +44,33 @@ class _ListEducationState extends State { @override Widget build(BuildContext context) { String _searchQuery = ""; - final List> _collections = [ - {"label": "Kesehatan", "image": "icons/healthy.svg"}, - {"label": "Gizi", "image": "icons/Nutrition.svg"}, - {"label": "Pendidikan", "image": "icons/Education.svg"}, - {"label": "Keselamatan", "image": "icons/Safety.svg"}, + final List> _collections = [ + { + "label": "Kesehatan", + "image": "assets/icons/healthy.svg", + "color": "#cdd0ee", + "category": "kesehatan", + }, + { + "label": "Gizi", + "image": "assets/icons/Nutrition.svg", + "color": "#e8e29a", + "category": "gizi", + }, + { + "label": "Pendidikan", + "image": "assets/icons/Education.svg", + "color": "#efd8c6", + "category": "pendidikan", + }, + { + "label": "Keselamatan", + "image": "assets/icons/Safety.svg", + "color": "#cef1da", + "category": "keselamatan", + }, ]; - List> filteredCollections = + List> filteredCollections = _collections .where( (item) => item["label"]!.toLowerCase().contains( @@ -66,13 +87,13 @@ class _ListEducationState extends State { ), actions: [], ), - backgroundColor: Colors.black26, + backgroundColor: const Color.fromARGB(255, 255, 255, 255), body: Column( children: [ // Header Section Container( width: MediaQuery.of(context).size.width, - height: 165, + height: 150, decoration: BoxDecoration( color: const Color.fromARGB(225, 79, 76, 182), borderRadius: BorderRadius.only( @@ -85,7 +106,7 @@ class _ListEducationState extends State { Padding( padding: const EdgeInsets.symmetric( horizontal: 20, - vertical: 20, + vertical: 6, ), child: Container( height: 47, @@ -141,21 +162,17 @@ class _ListEducationState extends State { return CollectionContainer( label: item["label"]!, imageSvg: item["image"]!, - iconw: 60, - iconh: 60, + iconw: 20, + iconh: 20, width: 70, height: 70, - circle: false, textColor: Colors.black, lblSize: 10, + colorContiner: ColorHelper.hexToColor(item["color"]), onTapAc: () => { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ListEducation(), - ), - ), + searchController.clear(), + filterSearch(item["category"]), }, ); }).toList(), diff --git a/lib/screen/pustaka/pustaka_detail_screen copy.dart b/lib/screen/pustaka/pustaka_detail_screen copy.dart index 3bf39fc..4a7f622 100644 --- a/lib/screen/pustaka/pustaka_detail_screen copy.dart +++ b/lib/screen/pustaka/pustaka_detail_screen copy.dart @@ -91,25 +91,25 @@ class _PustakaScreenState extends State { final List> _collections = [ { "label": "Luffy", - "image": "images/luffy.png", + "image": "assets/images/luffy.png", "description": "Karakter utama di One Piece.\nDia adalah bajak laut yang bercita-cita menjadi Raja Bajak Laut.", }, { "label": "Oni Chan", - "image": "images/klipartz.png", + "image": "assets/images/klipartz.png", "description": "Karakter ikonik dari anime.\nIa dikenal karena sifatnya yang protektif dan penyayang.", }, { "label": "Cepot", - "image": "images/cepott.png", + "image": "assets/images/cepott.png", "description": "Tokoh wayang golek terkenal.\nCepot dikenal dengan lelucon dan kebijaksanaannya.", }, { "label": "Cepot", - "image": "images/cepott.png", + "image": "assets/images/cepott.png", "description": "Tokoh wayang golek terkenal.\nCepot dikenal dengan lelucon dan kebijaksanaannya.", }, diff --git a/lib/screen/pustaka_screen.dart b/lib/screen/pustaka_screen.dart index 7478428..535eb37 100644 --- a/lib/screen/pustaka_screen.dart +++ b/lib/screen/pustaka_screen.dart @@ -22,10 +22,26 @@ class _PustakaScreenState extends State { String _searchQuery = ""; final List> _collections = [ - {"label": "Kesehatan", "image": "icons/healthy.svg", "color": "#cdd0ee"}, - {"label": "Gizi", "image": "icons/Nutrition.svg", "color": "#e8e29a"}, - {"label": "Pendidikan", "image": "icons/Education.svg", "color": "#efd8c6"}, - {"label": "Keselamatan", "image": "icons/Safety.svg", "color": "#cef1da"}, + { + "label": "Kesehatan", + "image": "assets/icons/healthy.svg", + "color": "#cdd0ee", + }, + { + "label": "Gizi", + "image": "assets/icons/Nutrition.svg", + "color": "#e8e29a", + }, + { + "label": "Pendidikan", + "image": "assets/icons/Education.svg", + "color": "#efd8c6", + }, + { + "label": "Keselamatan", + "image": "assets/icons/Safety.svg", + "color": "#cef1da", + }, ]; void _onMenuTapped(int index) { @@ -51,7 +67,7 @@ class _PustakaScreenState extends State { .toList(); return Scaffold( - backgroundColor: const Color.fromARGB(255, 255, 255, 255), + // backgroundColor: const Color.fromARGB(255, 255, 255, 255), body: Stack( children: [ //Top Bar @@ -110,7 +126,7 @@ class _PustakaScreenState extends State { height: 47, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), - color: const Color.fromARGB(50, 237, 227, 227), + color: const Color.fromARGB(255, 237, 227, 227), ), padding: const EdgeInsets.symmetric(horizontal: 15), child: Row( @@ -141,16 +157,17 @@ class _PustakaScreenState extends State { ), ), // Collection Items - Expanded( + Container( + height: 440, child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 100, - vertical: 40, + horizontal: 58, + vertical: 60, ), child: GridView.builder( gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( - maxCrossAxisExtent: 140, // Maksimum lebar tiap item + maxCrossAxisExtent: 140, mainAxisSpacing: 20, crossAxisSpacing: 20, childAspectRatio: 1, // 1:1 rasio (kotak) @@ -176,52 +193,27 @@ class _PustakaScreenState extends State { }, ); }, - // GridView.count( - // crossAxisCount: 2, - // crossAxisSpacing: 20, - // mainAxisSpacing: 20, - // children: - // filteredCollections.map((item) { - // return CollectionContainer( - // label: item["label"]!, - // imageSvg: item["image"]!, - // width: 80, - // height: 80, - // textColor: Colors.black, - // circle: true, - // colorContiner: item["color"]! as Color, - // onTapAc: - // () => { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => ListEducation(), - // ), - // ), - // }, - // ); - // }).toList(), - ), - ), - ), - SizedBox( - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 40, - vertical: 1, - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("List Topic", style: TextStyle(color: Colors.black)), - Divider(color: Colors.transparent), - ], ), ), ), + // SizedBox( + // child: Padding( + // padding: const EdgeInsets.symmetric( + // horizontal: 5, + // vertical: 1, + // ), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Text("List Topic", style: TextStyle(color: Colors.black)), + // Divider(color: Colors.transparent), + // ], + // ), + // ), + // ), // Horizontal Scroll List Padding( - padding: EdgeInsets.symmetric(horizontal: 40, vertical: 10), + padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5), child: SizedBox( width: MediaQuery.of(context).size.width, height: 100, @@ -282,7 +274,7 @@ class _PustakaScreenState extends State { ), ), // Bottom Navigation - MainMenu(), + // MainMenu(), ], ), // BG MEnu diff --git a/lib/screen/saya/akun_saya.dart b/lib/screen/saya/akun_saya.dart index 0fb1797..908db96 100644 --- a/lib/screen/saya/akun_saya.dart +++ b/lib/screen/saya/akun_saya.dart @@ -7,7 +7,7 @@ import 'package:furibase/components/scan_button.dart'; import 'package:image_picker/image_picker.dart'; import 'dart:io'; -import 'package:image_picker_web/image_picker_web.dart'; +// import 'package:image_picker_web/image_picker_web.dart'; import 'package:flutter/foundation.dart' show kIsWeb; class AkunSaya extends StatefulWidget { @@ -22,16 +22,16 @@ class _AkunSayaState extends State { Future _pickImage(bool isProfile) async { if (kIsWeb) { - Uint8List? bytesFromPicker = await ImagePickerWeb.getImageAsBytes(); - if (bytesFromPicker != null) { - setState(() { - if (isProfile) { - _profileImage = bytesFromPicker; - } else { - _headerImage = bytesFromPicker; - } - }); - } + // Uint8List? bytesFromPicker = await ImagePickerWeb.getImageAsBytes(); + // if (bytesFromPicker != null) { + // setState(() { + // if (isProfile) { + // _profileImage = bytesFromPicker; + // } else { + // _headerImage = bytesFromPicker; + // } + // }); + // } } else { final pickedFile = await _picker.pickImage(source: ImageSource.gallery); if (pickedFile != null) { diff --git a/lib/screen/saya/profile_screen copy.dart b/lib/screen/saya/profile_screen copy.dart index 639534d..0e9f852 100644 --- a/lib/screen/saya/profile_screen copy.dart +++ b/lib/screen/saya/profile_screen copy.dart @@ -86,7 +86,7 @@ class _ProfileScreenState extends State { as ImageProvider : FileImage(_headerImage) as ImageProvider) - : AssetImage('images/background.jpeg'), + : AssetImage('assets/images/background.jpeg'), fit: BoxFit.cover, ), ), diff --git a/lib/screen/saya/profile_screen.dart b/lib/screen/saya/profile_screen.dart index 8c6043a..39979a5 100644 --- a/lib/screen/saya/profile_screen.dart +++ b/lib/screen/saya/profile_screen.dart @@ -1,7 +1,7 @@ import 'dart:typed_data'; import 'package:flutter/material.dart'; -import 'package:flutter_html/flutter_html.dart'; +// import 'package:flutter_html/flutter_html.dart'; import 'package:furibase/components/bottom_navbar.dart'; import 'package:furibase/components/main_menu.dart'; import 'package:furibase/components/scan_button.dart'; @@ -10,7 +10,7 @@ import 'package:furibase/screen/saya/akun_saya.dart'; import 'package:image_picker/image_picker.dart'; import 'dart:io'; -import 'package:image_picker_web/image_picker_web.dart'; +// import 'package:image_picker_web/image_picker_web.dart'; import 'package:flutter/foundation.dart' show kIsWeb; class ProfileScreen extends StatefulWidget { @@ -28,16 +28,16 @@ class _ProfileScreenState extends State { Future _pickImage(bool isProfile) async { if (kIsWeb) { - Uint8List? bytesFromPicker = await ImagePickerWeb.getImageAsBytes(); - if (bytesFromPicker != null) { - setState(() { - if (isProfile) { - _profileImage = bytesFromPicker; - } else { - _headerImage = bytesFromPicker; - } - }); - } + // Uint8List? bytesFromPicker = await ImagePickerWeb.getImageAsBytes(); + // if (bytesFromPicker != null) { + // setState(() { + // if (isProfile) { + // _profileImage = bytesFromPicker; + // } else { + // _headerImage = bytesFromPicker; + // } + // }); + // } } else { final pickedFile = await _picker.pickImage(source: ImageSource.gallery); if (pickedFile != null) { diff --git a/pubspec.lock b/pubspec.lock index cf1ea27..5e3b2d7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -167,7 +167,7 @@ packages: source: hosted version: "5.0.0" flutter_plugin_android_lifecycle: - dependency: transitive + dependency: "direct main" description: name: flutter_plugin_android_lifecycle sha256: "1c2b787f99bdca1f3718543f81d38aa1b124817dfeb9fb196201bea85b6134bf" diff --git a/pubspec.yaml b/pubspec.yaml index 7f5ccd5..64f5578 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: flutter_html: ^3.0.0-beta.2 image_picker_for_web: ^3.0.6 image_picker_web: ^4.0.0 + flutter_plugin_android_lifecycle: ^2.0.9 # arcore_flutter_plugin: ^0.2.0-alpha # flutter_unity_widget: ^2022.2.1 # arcore_flutter_plugin: @@ -72,9 +73,32 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - assets/images/Artboard 15@4x.png + - assets/images/Artboard 16@4x.png + - assets/images/background.jpeg + - assets/images/cepott.png + - assets/images/ft_cepot.png + - assets/images/ft_luffy.png + - assets/images/klipartz.png + - assets/images/luffy-kimono.png + - assets/images/luffy-king.png + - assets/images/luffy-u.png + - assets/images/luffy.gif + - assets/images/luffy.png + + # SVG files + - assets/icons/E-furrybuddy.svg + - assets/icons/E-furrybuddy1.svg + - assets/icons/Education.svg + - assets/icons/furrybuddy.svg + - assets/icons/healthy.svg + - assets/icons/Koleksi.svg + - assets/icons/Nutrition.svg + - assets/icons/Pustaka.svg + - assets/icons/Safety.svg + - assets/icons/Saya.svg + - assets/icons/Scan.svg # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images