配置:请严格配置, 不然会引起这:MissingPluginException(No implementation found for method requestPermissions on channel flutter.baseflow.com/permissions/methods)

Flutter-- 动态申请权限_Flutter-- 动态申请权限


android.enableJetifier=true android.useAndroidX=true


Flutter-- 动态申请权限_flutter_02

Flutter-- 动态申请权限_Flutter-- 动态申请权限_03


添加权限:

Flutter-- 动态申请权限_Flutter-- 动态申请权限_04


1.引入插件

参考连接 https://pub.dev/packages/permission_handler


# 动态权限申请 permission_handler: '^3.2.0'

#toast toast: ^0.1.3


2.权限申请和检测

new Row(
// //主轴布局方式,column主轴方向是垂直的方向
// //将子控件放在主轴的开始位置
// start,
// //将子控件放在主轴的结束位置
// end,
// //将子控件放在主轴的中间位置
// center,
// //将主轴空白位置进行均分,排列子元素,手尾没有空隙
// spaceBetween,
// //将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
// spaceAround,
// //将主轴空白区域均分,使各个子控件间距相等
// spaceEvenly,

mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
// 交叉轴的布局方式,对于column来说就是水平方向的布局方式
crossAxisAlignment: CrossAxisAlignment.center,
//就是字child的垂直布局方向,向上还是向下
verticalDirection: VerticalDirection.down,


3.打开设置页

new Row(
// //主轴布局方式,column主轴方向是垂直的方向
// //将子控件放在主轴的开始位置
// start,
// //将子控件放在主轴的结束位置
// end,
// //将子控件放在主轴的中间位置
// center,
// //将主轴空白位置进行均分,排列子元素,手尾没有空隙
// spaceBetween,
// //将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
// spaceAround,
// //将主轴空白区域均分,使各个子控件间距相等
// spaceEvenly,

mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
// 交叉轴的布局方式,对于column来说就是水平方向的布局方式
crossAxisAlignment: CrossAxisAlignment.center,
//就是字child的垂直布局方向,向上还是向下
verticalDirection: VerticalDirection.down,


4.检测是否点击了禁止询问

new Row(
// //主轴布局方式,column主轴方向是垂直的方向
// //将子控件放在主轴的开始位置
// start,
// //将子控件放在主轴的结束位置
// end,
// //将子控件放在主轴的中间位置
// center,
// //将主轴空白位置进行均分,排列子元素,手尾没有空隙
// spaceBetween,
// //将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
// spaceAround,
// //将主轴空白区域均分,使各个子控件间距相等
// spaceEvenly,

mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
// 交叉轴的布局方式,对于column来说就是水平方向的布局方式
crossAxisAlignment: CrossAxisAlignment.center,
//就是字child的垂直布局方向,向上还是向下
verticalDirection: VerticalDirection.down,

5.正确的使用姿势

new Row(
// //主轴布局方式,column主轴方向是垂直的方向
// //将子控件放在主轴的开始位置
// start,
// //将子控件放在主轴的结束位置
// end,
// //将子控件放在主轴的中间位置
// center,
// //将主轴空白位置进行均分,排列子元素,手尾没有空隙
// spaceBetween,
// //将主轴空白区域均分,使中间各个子控件间距相等,首尾子控件间距为中间子控件间距的一半
// spaceAround,
// //将主轴空白区域均分,使各个子控件间距相等
// spaceEvenly,

mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
// 交叉轴的布局方式,对于column来说就是水平方向的布局方式
crossAxisAlignment: CrossAxisAlignment.center,
//就是字child的垂直布局方向,向上还是向下
verticalDirection: VerticalDirection.down,