我是 Flutter 的新手,我上周开始使用 Flutter,现在我想做一个简单的 Xylophone 应用程序。我成功创建了 UI 并创建了一个函数,playSound(int soundNumber)但是当我调用这个函数来播放声音时,它给了我这个错误。
**The following _TypeError was thrown building Body(dirty, state: _BodyState#051c2):
type '_MaterialStatePropertyAll<dynamic>' is not a subtype of type 'MaterialStateProperty<Color?>?'**
Run Code Online (Sandbox Code Playgroud)
这是我为playSound(int soundNumber)函数编写的代码。
void playSound(int soundNumber) {
final player = AudioCache();
player.play('note$soundNumber.wav');}
Expanded buildPlayButton({MaterialStateProperty color, int soundNumber}){
return Expanded(
child: ElevatedButton(
onPressed: () {
playSound(soundNumber);
},
style: ButtonStyle(
backgroundColor: color,
),
),
);}
Run Code Online (Sandbox Code Playgroud)
这是我调用这个函数的地方。
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
buildPlayButton(color: MaterialStateProperty.all(Colors.red), soundNumber: 1),
buildPlayButton(color: MaterialStateProperty.all(Colors.orangeAccent), …Run Code Online (Sandbox Code Playgroud) flutter flutter-layout android-studio-4.2 flutter-functional-widget flutter-android
我在 Kotlin 中为 flutter 应用程序编写了一个功能,可以将媒体文件直接从 Android 手机图库共享到应用程序。
在我测试过的许多设备上运行良好,例如 Realme 3 Pro、Oneplus 6t、三星 m40。
但是,在Asus Zenfone Max Pro M2共享任何媒体文件时,都会收到奇怪且不完整的信息URI&path
来自 Kotlin 代码的日志
D/URI =====(26032) : content://com.android.providers.downloads.documents/document/624
D/路径 =====(26032): /document/624
Kotlin 代码
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
this.binding = binding
binding.addOnNewIntentListener(this)
handleIntent(binding.activity.intent, true)
}
----------------------------------------------------------------------
private fun handleIntent(intent: Intent, initial: Boolean) {
when {
(intent.type?.startsWith("text") != true)
&& (intent.action == Intent.ACTION_SEND
|| intent.action == Intent.ACTION_SEND_MULTIPLE) -> { // Sharing images or videos
val value = getMediaUris(intent)
if …Run Code Online (Sandbox Code Playgroud) 我正在为 Flutter 开发一个带有背景内容的插件。
最近,我在android_alarm_manager插件中遇到了有关Flutter android 嵌入的问题。
一部分README说:
对于 Flutter Android Embedding V1,必须为后台服务提供回调以将插件注册到后台隔离。
您好,我正在使用 Dio 发送 FormData,但是发送时,网站返回错误
var formData = FormData.fromMap({
"ctl00\$ScriptManager1": "ctl00\$UpdatePanel1",
"__EVENTTARGET" :"ctl00\$cphPage\$productsControl",
"__EVENTARGUMENT" : "",
"__LASTFOCUS" : "",
"PageLoadedHiddenTxtBox" : "Set",
"Language" : "es-MX",
"CurrentLanguage" : "es-MX",
"Currency" : "",
"__VIEWSTATE" :"/sadasd.....",
"__VIEWSTATEGENERATOR" : "C0E71A90",
"ctl00\$txtSearch" : "",
"ctl00\$cphPage\$productsControl\$TopTools\$cbxSortType" : "",
"ctl00\$cphPage\$productsControl\$TopTools\$cbxPageSize" : "-1",
"ctl00\$taxes\$listCountries" : "54",
"__ASYNCPOST" : "true",
" " : ""
});
var dio = Dio();
dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
var customHeaders = {
'content-type': 'text/html; charset=utf-8',
'application':'x-www-form-urlencoded',
'Cookie': 'uid=rBQBc2CisZdxWU5XBBmMAg==; ASP.NET_SessionId=tedc4xrih1hk1ykbdzlakuvb; ASPNET_Session=client=BLUR; ShopMSAuth=0102A9A3B88FC919D908FEA90B7DF1D119D908000442004C005500520000012F00FF'
// other headers …Run Code Online (Sandbox Code Playgroud) 重要提示 - 我希望此功能仅适用于移动应用程序,而不适用于 flutter web。
我在保存 flutter 应用程序中的网站时遇到一些问题。我尝试过对 inappwebview 使用缓存方法和 savewebarchive 方法。该方法的问题在于它没有保存网站的完整内容。它仅保存 HTML 和 CSS 文件。
我想保存整个网站的所有内容,如 HTML、CSS、js、字体文件、图像,并将其存储在 flutter 应用程序中。我已经使用了一些插件,但没有一个有帮助。
我正在寻找与 httrack 相同的功能。
任何正确的方向都会受到重视。
我已经更新了最新的 Android Gradle 版本,但在生成签名包时仍然显示错误。
\n生成签名包需要您将 android gradle 插件更新到版本 3.2.0 或更高版本
\n\n下面我分享一下版本详细信息。
\nbuildscript {\next.kotlin_version = \'1.6.21\'\nrepositories {\n google()\n mavenCentral()\n}\n\ndependencies {\n classpath \'com.android.tools.build:gradle:7.0.4\'\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n classpath \'com.google.gms:google-services:4.3.10\'\n}\nRun Code Online (Sandbox Code Playgroud)\n}
\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-7.4.2-all.zip\nRun Code Online (Sandbox Code Playgroud)\n安卓工作室版
\nAndroid Studio 大黄蜂 | 2021.1.1 补丁 3\nBuild #AI-211.7628.21.2111.8309675,构建于 2022 年 3 月 16 日\n运行时版本:11.0.11+0-b60-7772763 aarch64\nVM:JetBrains sro 提供的 OpenJDK 64 位服务器虚拟机\nmacOS 11.4\nGC:G1 年轻代、G1 老一代\n内存:1280M\n核心:8\n注册表:external.system.auto.import.disabled=true\n非捆绑插件:Dart (211.7817)、org.jetbrains.kotlin ( 211-1.6.21-release-334-AS7442.40), io.flutter (66.0.1)
\n颤动版本
\nFlutter 2.10.0 \xe2\x80\xa2 通道稳定 \xe2\x80\xa2 https://github.com/flutter/flutter.git \nFramework \xe2\x80\xa2 修订版 5f105a6ca7(3 个月前) \xe2\x80 \xa2 …
android android-studio flutter flutter-android android-studio-bumblebee
我的应用程序编译成功,直到 Flutter 版本升级。我收到以下错误:
Runner.app/Info.plist does not exist. The Flutter "Thin Binary" build phase must run after "Copy Bundle Resources".
Run Code Online (Sandbox Code Playgroud)
颤振医生 -v
[?] Flutter (Channel stable, 1.22.3, on Mac OS X 10.15.6 19G2021, locale fr-FR)
• Flutter version 1.22.3 at /Users/xxx/development/flutter
• Framework revision 8874f21e79 (3 days ago), 2020-10-29 14:14:35 -0700
• Engine revision a1440ca392
• Dart version 2.10.3
[?] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/xxx/Library/Android/sdk
• Platform android-R, build-tools 29.0.2 …Run Code Online (Sandbox Code Playgroud) 我不明白CustomScrollView正常工作。
在 flutter 2.13.0-0.2.pre 之前,点击 a 内的 TextFieldsCustomScrollView在打开时自动调整键盘上方的 TextField。
将我的 flutter 版本降级到2.11.0-0.1.pre并在 上运行应用程序时Android version 11,滚动视图按预期工作 - 即使没有Scaffold通过添加来调整小部件resizeToAvoidBottomInset: false- 当用户点击 TextField 时,键盘就会出现,用户可以按预期滚动到底部。
然而升级到 Flutter 3.0.0 后,情况发生了变化。当我点击文本字段并且键盘出现时,我无法滚动到屏幕底部。事实上,滚动根本不起作用。
\n这是一个非常长的表单示例,包含大约 26 个文本字段。点击第 25 个文本字段将打开覆盖该文本字段的键盘。
\n@override\nWidget build(BuildContext context) {\n return Scaffold(\n backgroundColor: const Color(0xff185C66),\n resizeToAvoidBottomInset: true,\n body: CustomScrollView(\n shrinkWrap: true,\n clipBehavior: Clip.antiAlias,\n controller: ScrollController(),\n scrollDirection: Axis.vertical,\n slivers: [\n SliverPadding(\n padding: EdgeInsets.symmetric(horizontal: App.sidePadding),\n sliver: SliverList(\n delegate: SliverChildListDelegate.fixed([\n SafeArea(\n bottom: …Run Code Online (Sandbox Code Playgroud) flutter flutter-layout flutter-listview flutter-ios flutter-android
当我单击主页(main.dart)上的文本字段时,这是 flutter 给出的默认 dart。当软键盘出现时,我可以看到一个小故障,而当软键盘消失时,没有延迟。我在下面附上了这个案例的 gif。
void main() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: primaryColor, //blue
statusBarIconBrightness: Brightness.dark,
));
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the …Run Code Online (Sandbox Code Playgroud) 我使用以下命令在 macOS 上构建并运行了 flutter 应用程序。
flutter run
Run Code Online (Sandbox Code Playgroud)
这很棒。
现在,我想在 Android 设备上运行我的应用程序。它启用了开发人员模式,并在我运行时被识别adb devices。我还在我的 Android 设备上运行了其他应用程序。所以,我确信 Android 设备已经为 Android 开发做好了准备。
但现在执行时flutter run,我的应用程序仍然在 macOS 而不是 Android 设备上运行。我做了一个flutter build apk为Android构建我的应用程序的项目。但是,flutter run仍然可以在 Mac 上运行,而不是在 Android 上运行。
没有flutter run专门在Android上运行构建的命令吗?
flutter ×10
flutter-android ×10
android ×4
dart ×2
flutter-ios ×2
asus ×1
dio ×1
flutter-apk ×1
httrack ×1
ios ×1
kotlin ×1