小编cs *_*guy的帖子

Flutter PageView 如何在滑动时制作更快的动画

我有一个简单的页面视图:

PageView(
  controller: _pageController,
  physics: PlatformScrollPhysics.getPlatformScrollPhysics(),
  children: [
    Text("I am Text1"),
    Text("I am Text"),
  ],
  onPageChanged: (index) {
    print("page changed $index");
  },
);
Run Code Online (Sandbox Code Playgroud)

我想做的是我想让用户更快地完成滑动后的页面更改动画。当用户滑动手指并抬起手指时,就会发生这种情况,PageView 会对齐到下一页。这种捕捉目前需要很多时间,提供糟糕的用户体验。但是,没有设置捕捉动画速度和持续时间的选项。

我试图添加一个监听器:

_pageController.addListener(() {
      _pageController.position // this variable holds lots of information but yet I couldnt find what i looked for
      print("LISTENERRR ${_pageController.position}");
    }); 
Run Code Online (Sandbox Code Playgroud)

可悲的是,我找不到任何可以帮助我的东西。我试图超越滑动并通过调用进行自定义滑动

  _pageController.animateToPage(0, .. PARAMS);
Run Code Online (Sandbox Code Playgroud)

为此,我需要检测页面何时即将更改,以便我可以使用animateToPage方法覆盖动画。我可以检测页面何时在 PageView 中更改吗?我对onPageChanged回调不感兴趣,因为覆盖动画已经晚了。

flutter

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

node.js 中的 $elemMatch 投影

dbo.collection("users")
            .findOne({email: emailGiven, "friends.email": element.email},
                     { friends: { $elemMatch: { email: element.email } } },
                     function(errT, resultT) {})
Run Code Online (Sandbox Code Playgroud)

我在 node.js 中有上面的查询,但由于某种原因,查询的 elemMatch 部分在 node.js 上不起作用,但是当我在 mongo 终端中执行相同的查询时,它可以工作,所以我想也许 node.js 没有支持 $elemMatch?如果是这种情况,有人能告诉我 node.js 中这个查询的等价物是什么吗?

来自我的数据库的示例数据:

/* 4 */
{
    "_id" : ObjectId("5ad20cef8248544860ce3dc1"),
    "username" : "test",
    "email": "",
    "fullName" : "",
    "friends" : [{email: "",
                 status :""}],
    "alarms": [ {"id":111,
        "title": "TITLE",
        "location": "",
        "startTime": "10-10-1996 10:18:00",
        "endTime": "10-10-1996 10:18:00" }, {},{}

    ],
     "pnumber" : ""
}
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

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

这个 BFS 算法的时间复杂度是多少?

对于问题https://leetcode.com/problems/perfect-squares/我已经使用以下算法解决了它。问题是

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.

Example 1:

Input: n = 12
Output: 3 
Explanation: 12 = 4 + 4 + 4.
Run Code Online (Sandbox Code Playgroud)

它所做的基本上是尝试通过减去每个可能的数字([1, 4, 9, .. sqrt(n)] 来从目标数字变为 0,然后对获得的每个数字进行相同的工作。我很难理解这个算法的时间复杂度,因为每个级别的分支都是 sqrt(n) 次,但有些分支注定要提前结束......

def numSquares(n):


        squares = [i**2 for i in range(1, int(n**0.5)+1)]

        step = 1
        queue = {n}

        while queue:
            tempQueue = set()

            for node in queue:
                for square in …
Run Code Online (Sandbox Code Playgroud)

algorithm math breadth-first-search time-complexity

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

为什么StringBuilder.append时间复杂度为O(1)

通过摊销分析,我们知道N使用StringBuilder#append方法插入需要O(N)时间。但是,这是我迷路的地方。考虑这inputString是来自用户的输入字符串。

for (int i = 0; i < N; i++) {
   s.append(inputString); 
   // where s is an empty StringBuilder object at the beginning 
   // and inputString is the string that is taken from the user
}
Run Code Online (Sandbox Code Playgroud)

O(inputString.length * N)由于append()将输入字符串复制到时间的末尾,时间复杂度应该为StringBuilder N吗?为什么我们认为这append()需要O(1)时间复杂性,而应该考虑O(inputString.length)呢?

我检查的几乎所有地方都将其视为O(1),例如https://quora.com/What-is-the-complexity-of-Java-StringBuffer-append以及此简单代码段的复杂性什么?

java stringbuilder

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