小编kos*_*cki的帖子

在Flutter中显示SnackBar

我想在Flutter的有状态小部件中显示一个简单的SnackBar.我的应用程序使用名为MyHomePage的有状态窗口小部件创建MaterialApp的新实例.

我尝试在showSnackBar()方法中显示SnackBar.但它失败的' 方法'showSnackBar'在null上被调用 '.

这段代码出了什么问题?

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

  @override
  void initState() {
    super.initState();
    showInSnackBar("Some text");
  }

  @override
  Widget build(BuildContext context) …
Run Code Online (Sandbox Code Playgroud)

dart snackbar android-snackbar flutter

27
推荐指数
10
解决办法
3万
查看次数

Kotlin扩展函数访问Java私有字段

我想在使用Kotlin 扩展功能时访问Java的私有字段.

假设我有一个JavaABC.ABC只有一个私人领域mPrivateField.我想在Kotlin中编写一个扩展函数,无论出于何种原因使用该字段.

public class ABC {
    private int mPrivateField;

}
Run Code Online (Sandbox Code Playgroud)

科特林功能是:

private fun ABC.testExtFunc() {
    val canIAccess = this.mPrivateField;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Cannot access 'mPrivateField': It is private in 'ABC'

有什么办法解决这个限制?

kotlin kotlin-extension kotlin-interop

20
推荐指数
3
解决办法
9478
查看次数

Flutter - flutter-web 中的条件库导入

假设audioplayers|lib/audio_cache.dart仅适用于 Android/iOS,我有条件地从 Dart 文件中排除以下导入:

import "package:audioplayers/audio_cache.dart"
Run Code Online (Sandbox Code Playgroud)

通过以下方式:

import "dart:math" if (dart.library.io) "package:audioplayers/audio_cache.dart";
Run Code Online (Sandbox Code Playgroud)

其中“dart:math”可以是任何 fake_stub Dart 文件。简而言之,这Flutter 中的移动设备导入了一个库。详细信息在这里(感谢阿洛伊斯·丹尼尔!)。

在 Flutter-Web 实现中隐藏特定于平台的代码的最佳方法是什么?

 import 'dart:io' show Platform;

 bool isMobile() => Platform.isAndroid || Platform.isIOS;

 class _MyPageState extends State<MyPage> {
     dynamic _audioPlayer;

     @override
     void initState() {
         if (isMobile()) {
            _audioPlayer = AudioCache(prefix: 'sounds/');
            _audioPlayer.load('mysound.mp3');
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

AudioCache当然,这种幼稚的尝试在参考上失败了。

 Error: Method not found: 'AudioCache'.
  _audioPlayer = AudioCache(prefix: 'sounds/');
Run Code Online (Sandbox Code Playgroud)

import dart flutter flutter-web

14
推荐指数
1
解决办法
6719
查看次数

VSCode:搜索类/转到导入库的类

相当于 IntelliJ 的Go to class的 VSCode 是什么?即我想输入类名并接收与我的模式匹配的所有类的弹出列表。但是,这些不仅应该包括我的项目的类,还应该包括导入的库的类

当您使用? + O或查找类时,InteliJ 有一个选项“包括非项目项目” ctrl+O

我使用的语言是:Dart。

在此处输入图片说明

keyboard-shortcuts class visual-studio-code vscode-settings

13
推荐指数
2
解决办法
5970
查看次数

Flutter - http.get 在 macos 构建目标上失败:连接失败

我开始将我的 Flutter 应用程序移植到macos Desktop。用户界面开始很好。但是,一旦应用程序进行网络调用,它就会立即失败并显示Connection failed (OS Error: Operation not allowed)

运行单行:

final response = await http.get('https://jsonplaceholder.typicode.com/posts/1');
Run Code Online (Sandbox Code Playgroud)

失败:

Unhandled Exception: SocketException: Connection failed (OS Error: 
    Operation not permitted, errno = 1),
         address = jsonplaceholder.typicode.com, port = 443
#0      IOClient.send (package:http/src/io_client.dart:33:23)
Run Code Online (Sandbox Code Playgroud)

macos 构建目标来自此处的Google 示例。

Flutter (Channel master, v1.9.8-pre.108)

permissions http flutter flutter-desktop

13
推荐指数
2
解决办法
3949
查看次数

如何将Android的DP转换为Flutter的LP?DP和LP有什么区别?

我得到了一个新应用程序的设计。所有尺寸都是 Android 就绪的,并以 DP -(密度无关像素)给出。如何将这些值转换为Flutter 的 LP逻辑像素)。我知道这Window.devicePixelRatio给了我每个逻辑像素的设备像素数。

DP 和 LP 之间的确切区别是什么?是否有任何内置的 dp 到 lp 转换方法?

mobile pixel units-of-measurement flutter

11
推荐指数
1
解决办法
5827
查看次数

Koin如何注入Android活动/ appcompatactivity之外

Koin是一个全新的轻量级DI库,可用于Android以及独立的kotlin应用程序.

通常你注入这样的依赖:

class SplashScreenActivity : Activity() {

    val sampleClass : SampleClass by inject()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}
Run Code Online (Sandbox Code Playgroud)

用这个inject()方法.

但是如果在Activity上下文不可用的地方(例如活动之外)注入东西呢?

android dependency-injection inversion-of-control kotlin koin

10
推荐指数
3
解决办法
3916
查看次数

gradle设置密钥库文件的绝对路径值

我想将我的密钥库保存在项目目录之外.我不想里面的仓库,所以我委派值适当gradle这个变量中存储的文件路径~/.gradle/gradle.properties ,我不能让gradle这个接受像一个绝对路径: /Users/username/.gradle/keystores/project/release.key~/.gradle/keystores/project/release.key

我想: storeFile file(RELEASE_STORE_FILE)storeFile new File(RELEASE_STORE_FILE)

然而,它们似乎都不起作用.

如何通过RELEASE_STORE_FILE变量将绝对路径值传递给密钥库文件?

android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASS
            keyAlias RELEASE_ALIAS
            keyPassword RELEASE_KEY_PASS
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

~/.gradle/gradle.properties文件:

RELEASE_STORE_FILE=/Users/username/.gradle/keystores/project/release.key
RELEASE_STORE_PASS=******
RELEASE_ALIAS=******
RELEASE_KEY_PASS=******
Run Code Online (Sandbox Code Playgroud)

简而言之:我想将绝对路径值传递给gradle.

groovy android gradle

8
推荐指数
1
解决办法
3622
查看次数

typeof XService不能分配给'FactoryProvider'类型.物业'提供'缺失

NgModule在Ionic 2移动应用程序中有一个Angular 2 ,定义如下:

@NgModule({
  declarations: [
    MyApp,
    HomePage,
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
  ],
  providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, VatRatesDbService]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

并以这种方式定义服务:

import { Injectable } from '@angular/core';
import * as PouchDB from 'pouchdb';

@Injectable()
export class VatRatesDbService {

  private _db;

  private constructor() {
    this._db = new PouchDB('rates.db', { adapter: 'websql' });
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我在运行时收到以下错误:

类型'typeof VatRatesDbService'不能分配给'FactoryProvider'类型.'typeof VatRatesDbService'类型中缺少属性'provide'.

pouchdb ionic2 angular

8
推荐指数
2
解决办法
8691
查看次数

SCALA应用程序的Gradle init项目

我想为SCALA创建一个骨架控制台应用程序,即一个带有打印"Hello world"主函数的入口类.

我能够通过执行以下命令来创建一个scala库init项目:

gradle init --type scala-library

但似乎没有scala-application,运行:

gradle init --type scala-application

不支持请求的构建设置类型"scala-application".支持的类型:'basic','groovy-application','groovy-library','java-application','java-library','pom','scala-library'.

gradle是否没有scala控制台应用模板?

scala gradle

8
推荐指数
1
解决办法
884
查看次数