我已经将文件路径保存在变量中,我想通过使用路径包https://pub.dev/packages/path来获取文件类型扩展名到目前为止,我设法通过像这样拆分字符串来做到这一点
final path = "/some/path/to/file/file.dart";
print(path.split(".").last); //prints dart
Run Code Online (Sandbox Code Playgroud)
有没有办法用路径包来实现这一点?
我正在尝试找到一个可以识别文件类型的包。例如
final path = "/some/path/to/file/file.jpg";
Run Code Online (Sandbox Code Playgroud)
应该被识别为图像或
final path = "/some/path/to/file/file.doc";
Run Code Online (Sandbox Code Playgroud)
应该被识别为文件
当尝试使用此命令在 macOS Catalina 上安装 aqueduct 时,我收到此错误消息。
pub global activate aqueduct
Run Code Online (Sandbox Code Playgroud)
我设法通过将 flutter 放在它前面来安装它,但现在我无法运行渡槽。我试过
aqueduct --version
Run Code Online (Sandbox Code Playgroud)
我再次收到错误
zsh:找不到命令:渡槽
这是我的 .zshrc 文件(我添加了最后第二行来尝试修复它)
export PATH="$PATH:/Users/peter/development/tools/flutter/bin"
export PATH="$PATH":"$HOME/.pub-cache/bin"
Run Code Online (Sandbox Code Playgroud)
我不知道还能做什么...
我在 AS 中创建了一个新的 flutter 项目,由于某种原因,我的应用程序的 pubspec.yaml 中的名称只是 app,即使我在创建新应用程序时将其命名为其他名称
name: app
description: My new application.
Run Code Online (Sandbox Code Playgroud)
当我将其重命名为我需要的任何名称时,我的项目中的所有导入都会出错。
例子:
import 'package:app/main.dart';
Run Code Online (Sandbox Code Playgroud)
那么如何更改 pubspec.yaml 中的名称而不导致所有导入崩溃
更新重命名名称后,AS 不显示新名称的包选项
有什么办法可以禁用单个页面上的滚动吗?我尝试在特定页面上进行设置overflow: hidden,但没有成功。我必须将其设置在正文上index.css才能使其正常工作,但这显然会禁用所有页面上的滚动。所以我想到的唯一方法是在 body 上有条件地设置 CSS 类。有没有办法根据 redux 存储中的值有条件地在 index.js 中设置 CSS 类,或者还有其他方法吗?
我的索引.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom'
import {Provider} from 'react-redux'
import {createStore,applyMiddleware,compose,combineReducers} from "redux";
import thunk from 'redux-thunk'
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import authReducer from './store/reducers/auth'
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const rootReducer = combineReducers({
auth: authReducer
})
const store = createStore(rootReducer,
composeEnhancers(applyMiddleware(thunk)));
const app =(
<Provider store={store}> …Run Code Online (Sandbox Code Playgroud) 我今天也用 Xcode 更新了 flutter,尝试在 IOS 上运行我的应用程序时出现错误
警告:iOS 模拟器部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 7.0,但支持的部署目标版本范围为 8.0 到 13.4.99。(在来自项目“Pods”的目标“gRPC-C++-gRPCCertificates-Cpp”中)
...
当我从 Xcode 转到跑步者时,我只能将其更改为最低版本 8
颤振医生结果
[?] Flutter (Channel stable, v1.12.13+hotfix.9-pre.2, on Mac OS X 10.15.4 19E266, locale en-GB) • Flutter version 1.12.13+hotfix.9-pre.2 at /用户/peter/development/tools/flutter • 框架修订版 f139b11009(3 天前),2020-03-30 13:57:30 -0700 • 引擎修订版 af51afceb8 • Dart 版本 2.7.2
[?] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2) • Android SDK 位于 /Users/peter/Library/Android/sdk • 未配置 Android NDK 位置(可选;对于原生分析支持有用) • 平台 android -29,构建工具 29.0.2 • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • …
从我之前的问题开始,我试图只允许双格式的数字进入 TextField。我浏览了整个网络,但没有找到用于 dart 的正则表达式。
TextFormField(
inputFormatters: [
WhitelistingTextInputFormatter(RegExp(r'\d*\.?\d+')) //<-- useless attempt to allow double digits only
])
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 JSON 正文查询参数放入 http.get 请求中。我什至试图遵循这个Flutter: Send JSON body for Http GET request但没有运气。无论我在 params 变量中输入什么,我都会从后端获得所有结果。我已经用邮递员测试了后端,一切正常
这是我的颤振代码
Future<List<Country>> fetchCountries(String name) async {
final token = Provider.of<Auth>(context, listen: false).token;
final params = {"name": "Uk"};
try {
Uri uri = Uri.parse(APIPath.findCountry());
final newUri = uri.replace(queryParameters: params);
print(newUri); //prints http://localhost:8080/country/find?name=uk
final response = await http.get(newUri,
headers: [APIHeader.authorization(token), APIHeader.json()]
.reduce(mergeMaps));
final jsonResponse = json.decode(response.body);
if (response.statusCode == 200) {
Iterable list = jsonResponse['result'];
print(list);
return list.map((model) => Country.fromJson(model)).toList();
} else {
throw HttpException(jsonResponse["error"]);
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试模仿 iOS 联系表单应用栏。
展开
倒塌
这是我到目前为止的地方
主屏幕
class CompanyScreen extends StatefulWidget {
@override
_CompanyScreenState createState() => _CompanyScreenState();
}
class _CompanyScreenState extends State<CompanyScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverPersistentHeader(
pinned: true,
floating: true,
delegate: SafeAreaPersistentHeaderDelegate(
expandedHeight: 200,
flexibleSpace:
SafeArea(child: Image.asset('assets/images/user.png'))),
),
SliverList(
delegate: SliverChildListDelegate([
TextField(),
]),
)
],
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
银头
class SafeAreaPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
final Widget title;
final Widget flexibleSpace;
final double expandedHeight;
SafeAreaPersistentHeaderDelegate(
{this.title, this.flexibleSpace, this.expandedHeight});
@override
Widget build( …Run Code Online (Sandbox Code Playgroud) 我在前导属性中有 ListTile 和按钮。一切正常,但是如果按下按钮,则也会激活平铺 onTap 手势。Tile onTap 不仅仅触发动画。
这是代码
ListTile(
contentPadding: EdgeInsets.zero,
leading: IconButton(
icon: Icon(Icons.check_circle),
onPressed: () => print('select'),
),
title: Text('TEST'),
trailing: Icon(
Icons.arrow_forward_ios,
),
onTap: () => print('on tap'),
)
Run Code Online (Sandbox Code Playgroud)
关于如何消除前导区域的平铺 onTap 效果的任何想法。我想到的唯一方法是使用手势检测器包裹的tile中的行并摆脱onTap,但我希望有更好的解决方案(如果有的话)