Flutter地址选择插件fl_address_picker的使用

Flutter地址选择插件fl_address_picker的使用

fl_address_picker

图片地址:

欢迎访问我的个人网站:https://www.sshlearning.cn

欢迎访问我的GitHub并邀请你一起构建更多项目:https://github.com/ssh199956

欢迎访问我的个人博客:https://blog.sshlearning.cn

欢迎关注我的文档内容:https://data.sshlearning.cn

欢迎访问我在学习期间制作的静态电商网站:https://shenfeng.sshlearning.cn

Getting Started

fl_address_picker 是一个支持地址选择的Flutter插件,适用于Android、iOS等平台。

Usage

以下是一个简单的示例,展示如何在Flutter应用中使用fl_address_picker插件:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  // 用于存储当前选中的省市区信息
  String selectedProvince = '';
  String selectedCity = '';
  String selectedDistrict = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("地址选择插件示例"),
      ),
      body: Center(
        child: ElevatedButton(
          child: Text('选择地址'),
          onPressed: () {
            showModalBottomSheet(
              backgroundColor: Colors.black45,
              context: context,
              builder: (BuildContext context) {
                return Container(
                  color: Colors.grey[800],
                  height: 250.0,
                  child: AddressPicker(
                    style: TextStyle(color: Colors.white, fontSize: 17),
                    mode: AddressPickerMode.provinceCityAndDistrict, // 设置为省市区三级模式
                    onSelectedAddressChanged: (Address address) {
                      setState(() {
                        selectedProvince = address.currentProvince.province;
                        selectedCity = address.currentCity.city;
                        selectedDistrict = address.currentDistrict.district;
                      });
                    },
                    onTap: () {
                      // 可以在这里处理点击事件
                    },
                  ),
                );
              },
            );
          },
        ),
      ),
    );
  }
}

Property

mode

/// 选择模式
/// province 一级: 省
/// provinceAndCity 二级: 省市 
/// provinceCityAndDistrict 三级: 省市区
final AddressPickerMode mode;

onSelectedAddressChanged

/// 选中的地址发生改变回调
final AddressCallback onSelectedAddressChanged;

style

/// 省市区文字显示样式
final TextStyle style;

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

1 回复

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


fl_address_picker 是一个用于 Flutter 应用的地址选择插件,它可以帮助用户从地图上选择地址,并返回相应的经纬度和地址信息。以下是如何在 Flutter 项目中使用 fl_address_picker 插件的步骤:

1. 添加依赖

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

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

然后运行 flutter pub get 来安装依赖。

2. 导入插件

在你的 Dart 文件中导入 fl_address_picker 插件。

import 'package:fl_address_picker/fl_address_picker.dart';

3. 使用插件

你可以通过调用 FlAddressPicker.showAddressPicker 方法来显示地址选择器。这个方法会返回一个 Address 对象,包含用户选择的地址信息。

void _pickAddress() async {
  try {
    Address address = await FlAddressPicker.showAddressPicker(
      context: context,
      apiKey: 'YOUR_GOOGLE_MAPS_API_KEY', // 替换为你的 Google Maps API 密钥
      initialPosition: LatLng(37.7749, -122.4194), // 初始位置
    );

    print('Selected Address: ${address.formattedAddress}');
    print('Latitude: ${address.latitude}');
    print('Longitude: ${address.longitude}');
  } catch (e) {
    print('Error: $e');
  }
}

4. 获取 Google Maps API 密钥

fl_address_picker 插件依赖于 Google Maps API,因此你需要获取一个 Google Maps API 密钥。你可以通过以下步骤获取密钥:

  1. 访问 Google Cloud Console
  2. 创建一个新的项目或选择一个已有的项目。
  3. 启用 Maps JavaScript APIPlaces API
  4. API 和服务 -> 凭据 中创建一个新的 API 密钥。
  5. 将生成的 API 密钥替换到 apiKey 参数中。

5. 配置 Android 和 iOS

在使用 Google Maps API 时,你需要在 AndroidManifest.xmlInfo.plist 文件中配置 API 密钥。

Android

android/app/src/main/AndroidManifest.xml 文件中添加以下代码:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="YOUR_GOOGLE_MAPS_API_KEY"/>

iOS

ios/Runner/Info.plist 文件中添加以下代码:

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location when in the background.</string>
<key>GMSApiKey</key>
<string>YOUR_GOOGLE_MAPS_API_KEY</string>
回到顶部