turkiye_il_ilce_mahalle 0.3.0 copy "turkiye_il_ilce_mahalle: ^0.3.0" to clipboard
turkiye_il_ilce_mahalle: ^0.3.0 copied to clipboard

Turkiye Il Ilce Koy Mahalle Cadde Sokak Apartman ve Daire veritabanina bagli olarak adres secme flutter paketi

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:turkiye_il_ilce_mahalle/turkiye_il_ilce_mahalle.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Türkiye Adres Seçimi',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Türkiye Adres Seçimi Örnek'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Map<String, dynamic> _il = {"bilesenAdi": "İl Seçimi Yapın"};
  Map<String, dynamic> _ilce = {"bilesenAdi": "İlçe Seçimi Yapın"};
  Map<String, dynamic> _mahalle = {"bilesenAdi": "Mahalle Seçimi Yapın"};

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            const Text(
              'Lütfen adres bilgilerinizi seçiniz:',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            const SizedBox(height: 20),
            _buildSectionTitle("İl"),
            Il(
              fonksiyon: (Map<String, dynamic> gelenDeger) {
                setState(() {
                  _il = gelenDeger;
                  _ilce = {"bilesenAdi": "İlçe Seçimi Yapın"};
                  _mahalle = {"bilesenAdi": "Mahalle Seçimi Yapın"};
                });
              },
              barRengi: Colors.deepPurple,
              yaziRengi: Colors.white,
              child: _buildSelectionCard(_il['bilesenAdi']),
            ),
            const SizedBox(height: 16),
            if (_il['bilesenAdi'] != "İl Seçimi Yapın") ...[
              _buildSectionTitle("İlçe"),
              Ilce(
                ilVarMi: _il['bilesenAdi'] != "İl Seçimi Yapın",
                ilKodu: _il['kimlikNo']?.toString() ?? "",
                fonksiyon: (Map<String, dynamic> gelenDeger) {
                  setState(() {
                    _ilce = gelenDeger;
                    _mahalle = {"bilesenAdi": "Mahalle Seçimi Yapın"};
                  });
                },
                child: _buildSelectionCard(_ilce['bilesenAdi']),
              ),
              const SizedBox(height: 16),
            ],
            if (_ilce['bilesenAdi'] != "İlçe Seçimi Yapın") ...[
              _buildSectionTitle("Mahalle"),
              Mahalle(
                ilceVarMi: _ilce['bilesenAdi'] != "İlçe Seçimi Yapın",
                ilceKodu: _ilce['kimlikNo']?.toString() ?? "",
                fonksiyon: (Map<String, dynamic> gelenDeger) {
                  setState(() {
                    _mahalle = gelenDeger;
                  });
                },
                child: _buildSelectionCard(_mahalle['bilesenAdi']),
              ),
              const SizedBox(height: 30),
            ],
            if (_mahalle['bilesenAdi'] != "Mahalle Seçimi Yapın")
              Card(
                color: Colors.green.shade50,
                child: Padding(
                  padding: const EdgeInsets.all(16.0),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      const Text(
                        "Seçilen Adres:",
                        style: TextStyle(fontWeight: FontWeight.bold),
                      ),
                      const SizedBox(height: 8),
                      Text(
                        "${_mahalle['bilesenAdi']} Mah. / ${_ilce['bilesenAdi']} / ${_il['bilesenAdi']}",
                      ),
                    ],
                  ),
                ),
              ),
          ],
        ),
      ),
    );
  }

  Widget _buildSectionTitle(String title) {
    return Padding(
      padding: const EdgeInsets.only(bottom: 8.0),
      child: Text(
        title,
        style: const TextStyle(fontWeight: FontWeight.w600, fontSize: 16),
      ),
    );
  }

  Widget _buildSelectionCard(String text) {
    return Container(
      width: double.infinity,
      padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
      decoration: BoxDecoration(
        border: Border.all(color: Colors.grey.shade400),
        borderRadius: BorderRadius.circular(8),
      ),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [Text(text), const Icon(Icons.arrow_drop_down)],
      ),
    );
  }
}
13
likes
150
points
179
downloads

Publisher

verified publisherdershub.com

Weekly Downloads

Turkiye Il Ilce Koy Mahalle Cadde Sokak Apartman ve Daire veritabanina bagli olarak adres secme flutter paketi

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on turkiye_il_ilce_mahalle