Flutter土耳其地区选择器插件district_picker_turkey_map的使用

Flutter土耳其地区选择器插件district_picker_turkey_map的使用

district_picker_turkey_map 是一个用于从SVG地图中选择土耳其城市的省份的Flutter插件。它类似于由Ahmet ÇELİK创建的City Picker From Map。

所有81个土耳其城市都得到了支持。

开始使用

在你的Flutter项目的pubspec.yaml文件中,添加以下依赖项:

dependencies:
  ...
  district_picker_turkey_map: ^0.1.0

在你的库文件中添加以下导入语句:

import 'package:district_picker_turkey_map/district_picker_turkey_map.dart';

使用方法

以下是一个使用DistrictPickerMap组件的基本示例:

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  District? selectedDistrict;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('土耳其地区选择器示例'),
      ),
      body: Center(
        child: DistrictPickerMap(
          width: double.infinity, // 设置地图宽度为屏幕宽度
          height: double.infinity, // 设置地图高度为屏幕高度
          map: Maps.ANKARA, // 选择安卡拉的地图
          onChanged: (District? district) {
            setState(() {
              selectedDistrict = district;
            });
          },
          actAsToggle: true, // 允许用户通过点击来切换选择
          dotColor: Colors.white, // 点的颜色
          selectedColor: Colors.lightBlueAccent, // 选中区域的颜色
          strokeColor: Colors.white24, // 区域边框颜色
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          print('选中的地区: ${selectedDistrict?.name}');
        },
        child: Icon(Icons.info),
      ),
    );
  }
}

更多关于Flutter土耳其地区选择器插件district_picker_turkey_map的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter土耳其地区选择器插件district_picker_turkey_map的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


district_picker_turkey_map 是一个用于 Flutter 的插件,专门用于在土耳其地区选择省和区。它提供了一个用户友好的界面,允许用户从地图或列表中选择土耳其的省和区。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 district_picker_turkey_map 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  district_picker_turkey_map: ^1.0.0  # 请使用最新版本

然后,运行 flutter pub get 来安装插件。

使用插件

1. 导入插件

在你的 Dart 文件中导入插件:

import 'package:district_picker_turkey_map/district_picker_turkey_map.dart';

2. 显示地区选择器

你可以使用 DistrictPickerTurkeyMap 小部件来显示地区选择器。以下是一个简单的示例:

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String? selectedProvince;
  String? selectedDistrict;

  Future<void> _pickDistrict() async {
    final result = await showDialog(
      context: context,
      builder: (context) => DistrictPickerTurkeyMap(
        // 可选参数
        initialProvince: selectedProvince,
        initialDistrict: selectedDistrict,
      ),
    );

    if (result != null) {
      setState(() {
        selectedProvince = result['province'];
        selectedDistrict = result['district'];
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('土耳其地区选择器'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('选择的省: ${selectedProvince ?? "未选择"}'),
            Text('选择的区: ${selectedDistrict ?? "未选择"}'),
            ElevatedButton(
              onPressed: _pickDistrict,
              child: Text('选择地区'),
            ),
          ],
        ),
      ),
    );
  }
}

3. 处理选择结果

当用户选择一个省和区后,DistrictPickerTurkeyMap 会返回一个包含 provincedistrictMap。你可以根据需要处理这些数据。

自定义选项

DistrictPickerTurkeyMap 提供了一些可选参数,允许你自定义选择器的行为:

  • initialProvince: 初始选择的省。
  • initialDistrict: 初始选择的区。
  • showMap: 是否显示地图(默认为 true)。
  • showList: 是否显示列表(默认为 true)。

示例代码

以下是一个完整的示例代码,展示了如何使用 district_picker_turkey_map 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String? selectedProvince;
  String? selectedDistrict;

  Future<void> _pickDistrict() async {
    final result = await showDialog(
      context: context,
      builder: (context) => DistrictPickerTurkeyMap(
        initialProvince: selectedProvince,
        initialDistrict: selectedDistrict,
      ),
    );

    if (result != null) {
      setState(() {
        selectedProvince = result['province'];
        selectedDistrict = result['district'];
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('土耳其地区选择器'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('选择的省: ${selectedProvince ?? "未选择"}'),
            Text('选择的区: ${selectedDistrict ?? "未选择"}'),
            ElevatedButton(
              onPressed: _pickDistrict,
              child: Text('选择地区'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部