小编ska*_*esh的帖子

Firestore Paginating数据+ Snapshot监听器

我现在正在与Firestore合作,并且有一些分页问题.
基本上,我有一个集合(假设10个项目),其中每个项目都有一些数据和时间戳.

现在,我正在获取前3个这样的项目:

Firestore.firestore()
    .collection("collectionPath")
    .order(by: "timestamp", descending: true)
    .limit(to: 3)
    .addSnapshotListener(snapshotListener())
Run Code Online (Sandbox Code Playgroud)

在我的快照侦听器中,我保存了快照中的最后一个文档,以便将其用作下一页的起点.

所以,在某些时候我会要求下一页这样的项目:

Firestore.firestore()
    .collection("collectionPath")
    .order(by: "timestamp", descending: true)
    .start(afterDocument: lastDocument)
    .limit(to: 3)
    .addSnapshotListener(snapshotListener2()) // Note that this is a new snapshot listener, I don't know how I could reuse the first one
Run Code Online (Sandbox Code Playgroud)

现在我的前端有索引0到索引5(总共6个)的项目.整齐!

如果索引4处的文档现在将其时间戳更新为整个集合的最新时间戳,则事情开始下降.
请记住,时间戳决定了它在订单子句中的位置!

我期望发生的是,在应用更改后,我仍然会显示6个项目(仍按时间戳排序)

发生了什么,在应用更改后,我只剩下5个项目,因为从第一个快照中推出的项目没有自动添加到第二个快照.

我错过了与Firestore分页的内容吗?

编辑:根据要求,我在这里发布了一些代码:
这是我返回快照监听器的函数.好吧,我用两个方法来请求第一页,然后是我上面已经发布的第二页

private func snapshotListener() -> FIRQuerySnapshotBlock {
    let index = self.index
    return { querySnapshot, error in
        guard let snap = querySnapshot, error == nil else {
            log.error(error)
            return
        } …
Run Code Online (Sandbox Code Playgroud)

pagination objective-c ios swift google-cloud-firestore

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

QML InputHandler 停止事件传播

我有两个矩形,每个都有一个TapHandler. 矩形 A 是矩形 B 的父级
如何配置 A 和 B,以便单击 B 时,EventPoint不会传播到onSingleTappedA 的处理程序?

EventPoint文档建议将其属性设置accepted为 true:

将 Accepted 设置为 true 可防止事件传播到 PointerHandler 的 Item 下面的 Item。

然而,同时文档声明这accepted是一个只读属性,这没有多大意义(我猜文档已经过时或根本就是错误的)。

测试代码:

Rectangle {
    id: a

    width: 200
    height: 200
    color: "yellow"
    TapHandler {
        onSingleTapped: console.log("A tapped")
    }

    Rectangle {
        id: b
        color: "blue"
        width: 100
        height: 100
        TapHandler {
            onSingleTapped: function(eventPoint) {
                // Stop propagation.
                eventPoint.accepted = true
                console.log("B tapped")
            }
        } …
Run Code Online (Sandbox Code Playgroud)

qt event-propagation qml

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

聚合物1.2:更改纸张选定的背景颜色

我搜索了我的问题并找到了这个

但是,接受的解决方案对我不起作用但是我无法发表评论,因为我只有6个声望 - .-

所以情况是,我想使用纸张列表框中的Polymer框架中的纸质项目,但是当您通过单击选择项目时,背景将变为灰色...文档和问题的答案我联系abvoe建议覆盖--paper-item-selected/--paper-item-focus mixin,但这对我不起作用

我的代码:

<link rel="import" href="../../../external/Polymer/bower_components/polymer/polymer.html">


<dom-module id="cit-literal-item">

<template>
    <!-- scoped CSS for this element -->
    <style is="custom-style">
        .spacer {
            @apply(--layout-flex);
        }
        paper-item {
            --paper-item-selected: {
                background-color: #FFFFFF;
            };

            --paper-item-focused: {
                background-color: #FFFFFF;
            };
        }
    </style>
    <paper-item>Test</paper-item>
</template>
</dom-module>
Run Code Online (Sandbox Code Playgroud)

主要文件代码:

...
<!-- Polymer custom elements -->
<link rel="import" href="lib/internal/dom-modules/literals/cit-literal-item.html">
...
<body>
    <paper-listbox>
        <cit-literal-item></cit-literal-item>
        <cit-literal-item></cit-literal-item>
    </paper-listbox>
</body>
Run Code Online (Sandbox Code Playgroud)

css html5 polymer paper-elements

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

自定义UnmarshalYAML,如何在自定义类型上实现Unmarshaler接口

我解析了.yaml文件,需要以自定义方式解组其属性之一。我正在使用"gopkg.in/yaml.v2"包裹。

有问题的属性像这样存储在我的.yaml文件中:

endPointNumberSequences:
  AD1: [ 0, 10, 14, 1, 11, 2, 100, 101, 12 ]
Run Code Online (Sandbox Code Playgroud)

因此,它基本上是map[string][]uint16一种类型。
但是我需要map[string]EpnSeq在哪里EpnSeq定义为:
type EpnSeq map[uint16]uint16

我的结构:

type CitConfig struct {
    // lots of other properties
    // ...

    EndPointNumberSequences  map[string]EpnSeq `yaml:"endPointNumberSequences"`
}
Run Code Online (Sandbox Code Playgroud)

我试图像这样实现Unmarshaler接口:

// Implements the Unmarshaler interface of the yaml pkg.
func (e EpnSeq) UnmarshalYAML(unmarshal func(interface{}) error) error {
    yamlEpnSequence := make([]uint16, 0)
    err := unmarshal(&yamlEpnSequence)
    if err != nil {
        return err
    }

    for priority, epn …
Run Code Online (Sandbox Code Playgroud)

yaml go unmarshalling custom-type

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

Android Recyclerview预加载视图

我想知道当用户滚动得更快时,我怎么能避免回收者视图中的小白色"闪烁".
当然可以通过在可见屏幕之外预加载更多视图来避免闪烁

我找不到任何可以做到的事情,虽然这一定是一个非常常见的任务?

我在博客上试过这段代码:

public class PreCachingLayoutManager extends LinearLayoutManager {
    private static final int DEFAULT_EXTRA_LAYOUT_SPACE = 600;
    private int extraLayoutSpace = -1;
    private Context context;

    public PreCachingLayoutManager(Context context) {
        super(context);
        this.context = context;
    }

    public PreCachingLayoutManager(Context context, int extraLayoutSpace) {
        super(context);
        this.context = context;
        this.extraLayoutSpace = extraLayoutSpace;
    }

    public PreCachingLayoutManager(Context context, int orientation, boolean reverseLayout) {
        super(context, orientation, reverseLayout);
        this.context = context;
    }

    public void setExtraLayoutSpace(int extraLayoutSpace) {
        this.extraLayoutSpace = extraLayoutSpace;
    }

    @Override
    protected int getExtraLayoutSpace(RecyclerView.State state) {
        if (extraLayoutSpace …
Run Code Online (Sandbox Code Playgroud)

android preload android-recyclerview

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

golang格式,带符号的前导零

我想将整数格式化为UTC偏移格式的字符串

我尝试使用fmt包:

fmt.Sprintf("%+02d:00", utc)
Run Code Online (Sandbox Code Playgroud)

当utc为1时,我希望它打印“ +01:00”,但我得到“ +1:00”,
如何将前导零标志,符号标志和宽度组合在一个格式字符串中?

formatting go

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

Swift - 在阴影层切孔

我想在 UIView 和 Swift3、iOS 的阴影层中“切一个洞”

我有一个容器 (UIView),它有 2 个孩子:

  • 一个 UIImageView
  • 该图像顶部的一个 UIView(“叠加”)

我想给叠加一个阴影并切出该阴影的内部矩形,以在 ImageView 的边缘创建类似发光的效果
插入发光至关重要,因为图像占用了屏幕宽度
我的代码迄今为止:

let glowView = UIView(frame: CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight))
glowView.layer.shadowPath = UIBezierPath(roundedRect: container.bounds, cornerRadius: 4.0).cgPath
glowView.layer.shouldRasterize = true
glowView.layer.rasterizationScale = UIScreen.main.scale
glowView.layer.shadowOffset = CGSize(width: 1.0, height: 1.0)
glowView.layer.shadowOpacity = 0.4

container.addSubview(imageView)
container.addSubview(glowView)
Run Code Online (Sandbox Code Playgroud)

结果如下所示:

图片

现在我想剪掉较暗的内部部分,以便只保留边缘的阴影
任何想法如何实现?

shadow calayer ios swift swift3

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

Android:检索所有图像目录

我试图在Android设备上找到包含图像(内部和外部存储)的所有目录.
基本上,我尝试获取本机库应用程序中列出的所有目录

例如:

  • 所有图片
  • 下载
  • 我最喜欢的
  • Whatsapp图片
    ......

如何实现这一目标?我认为它与MediaStorage.Images.Media等有关,但文档在那里并不是很有帮助,很多谷歌搜索也没有帮助.

media android android-image android-file

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