Initialen Footer erstellt.

This commit is contained in:
Niklas 2024-11-01 21:12:57 +01:00
parent 6504b7d0c4
commit cda5b36368
4 changed files with 386 additions and 153 deletions

View File

@ -191,11 +191,7 @@ class Frame28 extends StatelessWidget {
LostEvents(),
Container(
height: 20),
Image.asset(
'assets/images/FooterFooter.png', // Pfad zum Bild
//height: 120, // Höhe des Bildes
width: 390, // Breite des Bildes
),]),
Footer(),]),
),
]);
return Scaffold(

View File

@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:Emma_home/utils/helper_functions.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class TimeButtonSection extends StatefulWidget {
const TimeButtonSection({required this.onToggle, Key? key}) : super(key: key);
final VoidCallback onToggle;
@override
_TimeButtonSection createState() => _TimeButtonSection();
}
@ -50,7 +50,6 @@ class _TimeButtonSection extends State<TimeButtonSection> {
_isToMorrowActive = !_isToMorrowActive;
_isWEActive = false;
});
},
style: OutlinedButton.styleFrom(
backgroundColor: _isToMorrowActive ? Colors.black : Colors.white,
@ -189,8 +188,6 @@ class HeaderSection extends StatelessWidget {
}
class EventCard2Section extends StatelessWidget {
final String title;
final String description;
final String location;
@ -210,28 +207,29 @@ class EventCard2Section extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: (screen_size.size.width-40),
width: (screen_size.size.width - 40),
height: 107,
margin: const EdgeInsets.fromLTRB(20.0, 0, 20.0, 20.0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
border: const Border(
left: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
top: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
right: BorderSide(color: Color(0xFFBFBCBC)),
bottom: BorderSide(color: Color(0xFFBFBCBC)),
),
boxShadow: [
BoxShadow(
color: color, //Color(0xFFF8AB14),
blurRadius: 0,
offset: const Offset(0, 10),
spreadRadius: 0,
)
],),
color: Colors.white,
borderRadius: BorderRadius.circular(10),
border: const Border(
left: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
top: BorderSide(width: 1, color: Color(0xFFBFBCBC)),
right: BorderSide(color: Color(0xFFBFBCBC)),
bottom: BorderSide(color: Color(0xFFBFBCBC)),
),
boxShadow: [
BoxShadow(
color: color, //Color(0xFFF8AB14),
blurRadius: 0,
offset: const Offset(0, 10),
spreadRadius: 0,
)
],
),
child: Stack(
children: [
children: [
Positioned(
right: 0,
top: 0,
@ -271,57 +269,58 @@ class EventCard2Section extends StatelessWidget {
left: 12,
top: 8,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
shortenText(title, 30),
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w800,
//fontWeight: FontWeight.w400,
height: 1.5,
),
),
SizedBox(
width:(screen_size.size.width-40)-130,
height:24,
child:Text(
location,
style: const TextStyle(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
shortenText(title, 30),
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
//fontWeight: FontWeight.w800,
height: 1.2,
fontWeight: FontWeight.w800,
//fontWeight: FontWeight.w400,
height: 1.5,
),
),
SizedBox(
width: (screen_size.size.width - 40) - 130,
height: 24,
child: Text(
location,
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
//fontWeight: FontWeight.w800,
height: 1.2,
),
),),
Text.rich(
TextSpan(
text: 'Beginn: ', // Standard-Text
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 12,
fontFamily: 'Inter',
height: 1.8,
fontWeight: FontWeight.w200, // Light weight
),
children: [
TextSpan(
text: start_time, // Variabler Text
style: const TextStyle(
fontWeight: FontWeight.w800, // Bold
),
),
],
),
),
),
),
Text.rich(
TextSpan(
text: 'Beginn: ', // Standard-Text
style: const TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 12,
fontFamily: 'Inter',
height: 1.8,
fontWeight: FontWeight.w200, // Light weight
),
children: [
TextSpan(
text: start_time, // Variabler Text
style: const TextStyle(
fontWeight: FontWeight.w800, // Bold
),
),
],
),
),
/* Row(
/* Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
@ -353,12 +352,11 @@ class EventCard2Section extends StatelessWidget {
),
]), */
],
),),
],
),
),
//Title
/* Positioned(
/* Positioned(
//Title
left: 92,
top: 14,
@ -388,7 +386,7 @@ class EventCard2Section extends StatelessWidget {
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w200,
height: 16/12,
height: 16 / 12,
),
),
),
@ -414,7 +412,6 @@ class EventCard2Section extends StatelessWidget {
),
)),*/
//Text Beginn
],
),
);
@ -862,8 +859,8 @@ class TagSlider extends StatelessWidget {
}
class MusikHeader extends StatelessWidget {
final String name; // First variable
final String icon; // Second variable
final String name; // First variable
final String icon; // Second variable
const MusikHeader({
super.key,
@ -873,60 +870,57 @@ class MusikHeader extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: [
SizedBox(
//width: 390,
height: 35,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Align(
return Column(children: [
SizedBox(
//width: 390,
height: 35,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Align(
alignment: Alignment.centerLeft,
child: IconButton(
icon: const Icon(Icons.keyboard_arrow_left),
onPressed: () {
Navigator.pop(context);
},
icon: const Icon(Icons.keyboard_arrow_left),
onPressed: () {
Navigator.pop(context);
},
),
),
Align(
Align(
alignment: Alignment.center,
child: Row(
children: [
SizedBox(
width: 32,
height: 32,
child: Image.asset(
icon,
errorBuilder: (context, error, stackTrace) {
print('Error loading image: $error');
return const Icon(Icons.error);
},
), ),
Text(
name,
style: TextStyle(
color: Color(0xFF171717),
fontSize: 20,
fontFamily: 'Inter',
fontWeight: FontWeight.w800,
height: 0,
),
SizedBox(
width: 32,
height: 32,
child: Image.asset(
icon,
errorBuilder: (context, error, stackTrace) {
print('Error loading image: $error');
return const Icon(Icons.error);
},
),
),
Text(
name,
style: TextStyle(
color: Color(0xFF171717),
fontSize: 20,
fontFamily: 'Inter',
fontWeight: FontWeight.w800,
height: 0,
),
),
],
),
),
const SizedBox(width: 89),
],
),
),
]
);
const SizedBox(width: 89),
],
),
),
]);
}
}
@ -1014,7 +1008,8 @@ class CardGenre extends StatelessWidget {
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
const SizedBox(
width: 83,
@ -1035,8 +1030,10 @@ class CardGenre extends StatelessWidget {
height: 20,
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 179,
@ -1047,20 +1044,24 @@ class CardGenre extends StatelessWidget {
TextSpan(
text: 'Start: ',
style: TextStyle(
color: Color(0xFF0A0A0A),
color:
Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w200,
fontWeight:
FontWeight.w200,
height: 0.08,
),
),
TextSpan(
text: '20:30',
style: TextStyle(
color: Color(0xFF0A0A0A),
color:
Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w800,
fontWeight:
FontWeight.w800,
height: 0.08,
),
),
@ -1114,9 +1115,11 @@ class CardGenre extends StatelessWidget {
width: 32,
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
color: Colors.white
.withOpacity(0.800000011920929),
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
side: BorderSide(
width: 1, color: Color(0xFFABA9A9)),
),
),
),
@ -1146,7 +1149,6 @@ class CardGenre extends StatelessWidget {
}
}
class CardGenre_temp extends StatelessWidget {
const CardGenre_temp({super.key});
@ -1188,9 +1190,7 @@ class CardGenre_temp extends StatelessWidget {
),
borderRadius: BorderRadius.circular(10),
),
shadows: const [
],
shadows: const [],
),
child: Row(
mainAxisSize: MainAxisSize.min,
@ -1226,7 +1226,8 @@ class CardGenre_temp extends StatelessWidget {
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
const SizedBox(
width: 83,
@ -1247,8 +1248,10 @@ class CardGenre_temp extends StatelessWidget {
height: 20,
child: const Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 179,
@ -1259,20 +1262,24 @@ class CardGenre_temp extends StatelessWidget {
TextSpan(
text: 'Start: ',
style: TextStyle(
color: Color(0xFF0A0A0A),
color:
Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w200,
fontWeight:
FontWeight.w200,
height: 0.08,
),
),
TextSpan(
text: '20:30',
style: TextStyle(
color: Color(0xFF0A0A0A),
color:
Color(0xFF0A0A0A),
fontSize: 18,
fontFamily: 'Inter',
fontWeight: FontWeight.w800,
fontWeight:
FontWeight.w800,
height: 0.08,
),
),
@ -1326,9 +1333,11 @@ class CardGenre_temp extends StatelessWidget {
width: 32,
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
color: Colors.white
.withOpacity(0.800000011920929),
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
side: BorderSide(
width: 1, color: Color(0xFFABA9A9)),
),
),
),
@ -1516,9 +1525,11 @@ class Event_Card extends StatelessWidget {
width: 32,
height: 32,
decoration: ShapeDecoration(
color: Colors.white.withOpacity(0.800000011920929),
color:
Colors.white.withOpacity(0.800000011920929),
shape: const OvalBorder(
side: BorderSide(width: 1, color: Color(0xFFABA9A9)),
side: BorderSide(
width: 1, color: Color(0xFFABA9A9)),
),
),
),
@ -1545,12 +1556,11 @@ class Event_Card extends StatelessWidget {
}
}
class LostEvents extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child:Column(
child: Column(
children: [
Container(
width: 350,
@ -1623,7 +1633,8 @@ class LostEvents extends StatelessWidget {
),
),
TextSpan(
text: ' werdet Host und stellt eure Events bei uns rein. ',
text:
' werdet Host und stellt eure Events bei uns rein. ',
style: TextStyle(
color: Color(0xFF0A0A0A),
fontSize: 16,
@ -1657,4 +1668,221 @@ class LostEvents extends StatelessWidget {
],
));
}
}
}
class Footer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
//width: 390,
//height: 90,
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
color: Color(0xFFF2F2F2),
border: Border(
left: BorderSide(color: Color(0xFF868686)),
top: BorderSide(width: 1, color: Color(0xFF868686)),
right: BorderSide(color: Color(0xFF868686)),
bottom: BorderSide(color: Color(0xFF868686)),
),
),
child: Column(
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 30,
//width: 63,
child: IconButton(
icon: Image.asset('assets/images/logo.png'),
onPressed: () {
// Open drawer or perform action
},
),
),
const SizedBox(width: 10),
Text(
'© 2024 Alle Rechte vorbehalten',
style: TextStyle(
color: Colors.black,
fontSize: 7,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
const SizedBox(width: 50),
SizedBox(
height: 20,
width: 20,
child: IconButton(
icon: FaIcon(FontAwesomeIcons.instagram, size: 20),
onPressed: () {
// Füge hier die YouTube-Aktion hinzu
},
padding:
EdgeInsets.zero, // Entfernt das Padding des IconButton
constraints:
BoxConstraints(), // Entfernt die Standardbeschränkungen
)),
const SizedBox(width: 10),
SizedBox(
height: 20,
width: 20,
child: IconButton(
icon: FaIcon(FontAwesomeIcons.tiktok, size: 20),
onPressed: () {
// Füge hier die YouTube-Aktion hinzu
},
padding:
EdgeInsets.zero, // Entfernt das Padding des IconButton
constraints:
BoxConstraints(), // Entfernt die Standardbeschränkungen
)),
const SizedBox(width: 10),
SizedBox(
height: 20,
width: 25,
child: IconButton(
icon: FaIcon(FontAwesomeIcons.youtube, size: 20),
onPressed: () {
// Füge hier die YouTube-Aktion hinzu
},
padding:
EdgeInsets.zero, // Entfernt das Padding des IconButton
constraints:
BoxConstraints(), // Entfernt die Standardbeschränkungen
)),
const SizedBox(width: 10),
SizedBox(
height: 20,
width: 20,
child: IconButton(
icon: FaIcon(FontAwesomeIcons.facebook, size: 20),
onPressed: () {
// Füge hier die YouTube-Aktion hinzu
},
padding:
EdgeInsets.zero, // Entfernt das Padding des IconButton
constraints:
BoxConstraints(), // Entfernt die Standardbeschränkungen
)),
const SizedBox(width: 10),
],
),
Container(height: 10),
Row(
children: [
Text(
' About us',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
const SizedBox(width: 10),
Container(
width: 8,
height: 8,
decoration: ShapeDecoration(
shape: OvalBorder(side: BorderSide(width: 1)),
),
),
const SizedBox(width: 10),
Text(
'Impressum',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
const SizedBox(width: 10),
Container(
width: 8,
height: 8,
decoration: ShapeDecoration(
shape: OvalBorder(side: BorderSide(width: 1)),
),
),
const SizedBox(width: 10),
Text(
'Kontakt',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
const SizedBox(width: 10),
Container(
width: 8,
height: 8,
decoration: ShapeDecoration(
shape: OvalBorder(side: BorderSide(width: 1)),
),
),
const SizedBox(width: 10),
Text(
'Help Service',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
],
),
Container(height: 10),
Row(
children: [
Text(
'Terms and conditions ',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
const SizedBox(width: 20),
Container(
width: 8,
height: 8,
decoration: ShapeDecoration(
shape: OvalBorder(side: BorderSide(width: 1)),
),
),
const SizedBox(width: 20),
Text(
'sponsered by: Start up Bavaria',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Inter',
fontWeight: FontWeight.w400,
height: 0,
),
),
],
),
Container(height: 20),
],
),
);
}
}

View File

@ -192,6 +192,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: "direct main"
description:
name: font_awesome_flutter
sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f"
url: "https://pub.dev"
source: hosted
version: "10.7.0"
functions_client:
dependency: transitive
description:

View File

@ -40,6 +40,7 @@ dependencies:
image_picker: ^1.1.2
provider: ^6.0.5
flutter_dotenv: ^5.2.1
font_awesome_flutter: ^10.1.0
dev_dependencies: