小编Mor*_*rez的帖子

Provider 与 ValueNotifier Flutter

有人可以解释使用Provider包和使用ValueNofifier之间的区别吗?

\n

现在我\xe2\x80\x99m在我的应用程序中使用ValueNotifierValueListenableBuilder,我发现这与使用提供者和消费者之间有很多相似之处。两者都有使用提供的最新数据重建小部件的侦听器,并且都使用 ChangeNotifier 和 notificationListeners。

\n

那么它们有什么区别,什么时候我们应该选择其中一种而不是另一种呢?

\n

谢谢

\n

provider flutter

12
推荐指数
1
解决办法
4383
查看次数

Flutter 中具有 NullSafety 的单例类

我有这个类,它通过使用工厂构造函数获取一些参数,如果实例为空,将创建一个新对象;如果它不为空,则将返回实例的值,因此我们始终收到相同的对象(单例)。这就是我在启用 dart 的空安全功能之前使用单例模式的方式。

class GuestUser extends User {
  static GeustUser _instance;


  factory GuestUser(
      {required String firstName,
      required String lastName,
      required String email,
      required Address address,
      required PaymentInfo paymentInfo}) {
    if (_instance == null) {
      _instance =
          GuestUser._(firstName, lastName, email, address, paymentInfo);
    }
    return _instance;
  }
Run Code Online (Sandbox Code Playgroud)

现在启用空安全后,我收到此错误:

The non-nullable variable '_instance' must be initialized.
Try adding an initializer expression.
Run Code Online (Sandbox Code Playgroud)

if (_instance == null)不再需要了。

_instance如果我这样定义: static late final GuestUser _instance;那么我不能使用 来if (_instance == null)仅在需要时创建 _instance 。所以我必须删除 …

dart flutter dart-null-safety

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

如何从本机平台调用 Flutter 应用程序中的无头 Dart 代码

我在我的 Flutter 应用程序之一中使用fast_actions插件,并希望在用户单击快捷方式时调用无头 Dart 函数。

我只是希望在后台执行 dart 代码,而不向用户显示应用程序屏幕。我知道很多插件,如background_fetch、WorkManager 等可以安排在后台运行dart 代码。

我假设可能需要修改quick_actions插件中的java代码才能实现?

platform native dart flutter

6
推荐指数
0
解决办法
829
查看次数

当子小部件更改 Flutter 时,更改父变量并重建父小部件

我有一个屏幕小部件和一个自定义小部件。我想在按下自定义小部件的按钮时更改屏幕小部件的值。只是为了展示一个例子;

这是 MyScreen 小部件,它使用 CustomWidget 作为子项:

import './widgets/my_custom_widget.dart';
class MyScreen extends StatefulWidget {

  @override
  _MyScreen createState() => _MyScreenState();
}

class _MyScreen extends State<MyScreen> {
 bool isChildButtonPressed = false;
  @override
  Widget build(BuildContext context) {
    return Container(
         child:MyCustomWidget());
    }
}
Run Code Online (Sandbox Code Playgroud)

这是 MyCustomWidget

class MyCustomWidget extends StatefulWidget {

  @override
  _MyCustomWidget createState() => _MyCustomWidget();
}

class _MyCustomWidget extends State<MyCustomWidget> {
  @override
  Widget build(BuildContext context) {
    return Container(
        width:200,
        height:200,
         child: Row(children:[
                  FlatButton(child:Text("I am child button"),onPressed:(){
                     //what should I do here to change MyScreen isChildButtonPressed …
Run Code Online (Sandbox Code Playgroud)

state-management dart flutter

3
推荐指数
1
解决办法
2775
查看次数

设计 O(log n) 算法以在列表中查找 3 个不同的元素

问题是:

设计一个 O(log n) 算法,其输入是一个排序列表 A。如果 A 包含至少 3 个不同的元素,则该算法应该返回 true。否则,算法应返回 false。

因为它必须是 O(log n),所以我尝试使用二进制搜索,这是我写的代码:

def hasThreeDistinctElements(A):
    if len(A) < 3:
        return False
    minInd = 0
    maxInd = len(A)-1
    midInd = (maxInd+minInd)//2
    count = 1
    while minInd < maxInd: 
        if A[minInd] == A[midInd]:
            minInd = midInd
            if A[maxInd] == A[midInd]:
                maxInd = midInd
            else:
                count += 1
                maxInd -= 1
        else:
            count += 1
            minInd += 1
        midInd = (maxInd+minInd)//2
  
    return count >= 3    
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

谢谢

python algorithm big-o time-complexity

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