flutter
unknown
dart
2 years ago
14 kB
8
Indexable
import 'package:flutter/material.dart'; class Anasayfa extends StatefulWidget { const Anasayfa({super.key}); @override State<Anasayfa> createState() => _AnasayfaState(); } String? dropdownValue; // İlk değer için bir örnek DateTime selectedDate = DateTime.now(); class _AnasayfaState extends State<Anasayfa> { @override Widget build(BuildContext context) { Future<void> _selectDate(BuildContext context) async { final DateTime? picked = await showDatePicker( context: context, initialDate: selectedDate, firstDate: DateTime(2000), lastDate: DateTime(2025), ); if (picked != null && picked != selectedDate) { setState(() { selectedDate = picked; }); } } final genislik = MediaQuery.of(context).size.width; final yukseklik = MediaQuery.of(context).size.height; Orientation orientation = MediaQuery.of(context).orientation; return Scaffold( appBar: AppBar( backgroundColor: Colors.black, centerTitle: true, titleTextStyle: const TextStyle(color: Colors.white, fontWeight: FontWeight.bold), title: const Text("Yabancı Borsa Vergi Hesaplama"), bottom: PreferredSize( preferredSize: const Size.fromHeight(30), child: Container( decoration: const BoxDecoration( color: Colors.black87, border: Border( bottom: BorderSide(width: 0.5, color: Colors.white))), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 8.0), child: Row( children: [ Expanded( flex: 20, child: Text( orientation == Orientation.portrait ? "İşlem" " Türü" : "İşlem Türü", textAlign: TextAlign.center, style: const TextStyle( fontWeight: FontWeight.bold, color: Colors.white), )), const Expanded( flex: 20, child: Text( "Tarih", textAlign: TextAlign.center, style: TextStyle( fontWeight: FontWeight.bold, color: Colors.white), )), const Expanded( flex: 20, child: Text( "Adet", textAlign: TextAlign.center, style: TextStyle( fontWeight: FontWeight.bold, color: Colors.white), )), const Expanded( flex: 20, child: Text( "Birim Fiyat", textAlign: TextAlign.center, style: TextStyle( fontWeight: FontWeight.bold, color: Colors.white), )), const Expanded(flex: 20, child: SizedBox()), ], ), ), ), )), body: SafeArea( child: Container( padding: const EdgeInsets.symmetric(horizontal: 5), color: Colors.black, child: Column( children: [ SingleChildScrollView( child: SizedBox( height: yukseklik * 0.7, child: ListView.builder( itemCount: _employeeDataSource.length, itemBuilder: ( context, index, ) { return InkWell( onTap: () { print("bastım"); }, child: _borsaCard(index, yukseklik)); }, ), ), ), Padding( padding: const EdgeInsets.all(8.0), child: _hesaplaButton(), ) ], ), ), ), floatingActionButton: FloatingActionButton( onPressed: () { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: const Text('Form'), content: SingleChildScrollView( child: ListBody( children: <Widget>[ TextButton( onPressed: () => _selectDate(context), child: Text("${selectedDate.toLocal()}".split(' ')[0]), ), Expanded( child: DropdownButtonFormField<String>( decoration: InputDecoration( hintText: 'İşlem Türü', border: OutlineInputBorder( borderSide: BorderSide.none, borderRadius: BorderRadius.circular(10), ), filled: true, fillColor: Colors.white, ), value: dropdownValue, onChanged: (String? newValue) { setState(() { dropdownValue = newValue!; }); }, items: <String>['Alış', 'Satış'] .map<DropdownMenuItem<String>>((String value) { return DropdownMenuItem<String>( value: value, child: Text(value), ); }).toList(), ), ), SizedBox(height: yukseklik * 0.05), Expanded( child: TextFormField( cursorColor: Colors.black, decoration: InputDecoration( hintText: 'Hisse Adeti', hintStyle: const TextStyle( color: Colors.grey, ), border: OutlineInputBorder( borderSide: BorderSide.none, borderRadius: BorderRadius.circular(10), ), filled: true, fillColor: Colors.white, ), ), ), SizedBox(height: yukseklik * 0.05), Expanded( child: TextFormField( decoration: InputDecoration( hintText: 'Hisse Fiyat', hintStyle: const TextStyle( color: Colors.grey, ), border: OutlineInputBorder( borderSide: BorderSide.none, borderRadius: BorderRadius.circular(10), ), filled: true, fillColor: Colors.white, ), ), ), ], ), ), actions: <Widget>[ TextButton( child: const Text('İptal'), onPressed: () { Navigator.of(context).pop(); }, ), TextButton( child: const Text('Tamam'), onPressed: () { // Tamam butonuna basıldığında yapılacak işlemler Navigator.of(context).pop(); }, ), ], ); }, ); }, backgroundColor: Colors.white10, foregroundColor: Colors.white, child: const Icon(Icons.add), ), ); } OutlinedButton _hesaplaButton() { return OutlinedButton.icon( style: ElevatedButton.styleFrom( backgroundColor: Colors.white10, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8)))), onPressed: () {}, icon: const Icon( Icons.query_stats, color: Colors.white, ), label: const Text( "Hesapla", style: TextStyle(color: Colors.white), )); } Card _borsaCard(int index, double yukseklik) { return Card( color: (index % 2 == 0) ? Colors.black54 : Colors.white10, child: SizedBox( child: Row( children: [ Expanded( flex: 20, child: Text( _employeeDataSource[index].tur, textAlign: TextAlign.center, style: const TextStyle( fontWeight: FontWeight.bold, color: Colors.white), )), Expanded( flex: 20, child: Text( _employeeDataSource[index].tarih, textAlign: TextAlign.center, style: const TextStyle(color: Colors.white), )), Expanded( flex: 20, child: Text( _employeeDataSource[index].adet, textAlign: TextAlign.center, style: const TextStyle(color: Colors.white), ), ), Expanded( flex: 20, child: Text( _employeeDataSource[index].fiyat.toString(), textAlign: TextAlign.center, style: const TextStyle(color: Colors.white), )), Expanded( flex: 20, child: IconButton( onPressed: () { setState(() { _employeeDataSource.removeAt(index); }); }, icon: const Icon( Icons.delete, color: Colors.red, ), )), ], ), ), ); } } class Employee { Employee(this.tur, this.tarih, this.adet, this.fiyat); final String tur; final String tarih; final String adet; final double fiyat; } List<Employee> _employeeDataSource = [ Employee('Alış', '25.02.2022', '10', 205.94), Employee('Satış', '25.04.2023', '15', 205.94), Employee('Alış', '25.01.2023', '13', 205.94), Employee('Satış', '25.08.2021', '23', 205.94), Employee('Alış', '25.07.2023', '7', 205.94), Employee('Satış', '25.09.2024', '19', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), Employee('Alış', '25.05.2022', '26', 205.94), // Add more employees as needed ];
Editor is loading...
Leave a Comment