小编Mar*_*tin的帖子

Android:具有三种线性布局的水平滚动视图

我想用水平滚动视图创建一个活动.滚动视图的内容将是三个不同的线性布局.这些线性布局中的每一个都应占据设备屏幕的整个宽度.因此,当活动开始时,只有一个线性布局占据屏幕的整个宽度,当用户向右滑动时,另一个线性布局将以全宽显示.(见图)

我不确定如何设置linearlayouts的宽度,以便它们适合屏幕的宽度.关于如何以一种好的方式解决这个问题的任何想法?

这就是我需要的

android scrollview android-linearlayout

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

qTranslate for Wordpress不会自动给我正确的语言

我使用qTranslate for Wordpress来发布我的英文,瑞典文和德文博文.我已激活"检测浏览器语言",以便将访问者转发到其浏览器指定语言的正确URL.

所以,如果我访问blog.domain.com,我会转移到blog.domain.com/sv/,我的博客文章是瑞典语,这太棒了!但是现在问题是,如果我再次从同一台计算机再次访问blog.domain.com,我就不会被转移,博客文章是默认语言英语.

我有什么问题吗?似乎很奇怪,我总是需要指定语言,我需要它基于浏览器自动.

wordpress localization qtranslate

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

我应该开发什么版本的Android?

刚刚开始为Android开发,我们的想法是在Android Market上创建一个应用程序.我真的希望能够使用"图形布局"(WYSIWYG)中的bulit来创建UI.我现在有两个问题:

  1. 从我所看到的几乎所有用户目前都在使用Android 2.2或更早版本.根据我的理解,3.0版本在创建UI时有很多改进,但什么时候3.0版本可用于更大的质量?我应该继续为2.X用户开发还是应该使用3.0?

  2. 您是否建议我使用"图形布局"来创建UI,还是应该使用xml文件手动执行?我已经读过"图形布局"在早期版本中效果不佳但3.0更好?

wysiwyg android version

5
推荐指数
2
解决办法
2936
查看次数

如何使用全文索引进行精确匹配?

我有一个带有全文索引的 MySql MyISAM 表,如下所示:

CREATE TABLE `tblsearch` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `title` varchar(100) NOT NULL,
    `brand` varchar(100) DEFAULT NULL,
    PRIMARY KEY (`id`),
    FULLTEXT KEY `index_all` (`title`,`brand`)
) ENGINE=MyISAM AUTO_INCREMENT=1316109 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

现在我需要编写这样的查询来查找具有确切标题和品牌的所有条目:

SELECT id FROM tblsearch WHERE title=?title AND brand=?brand;
Run Code Online (Sandbox Code Playgroud)

重要的是查询只提供完全匹配。我希望能够使用我已有的全文索引。是否可以编写查询以便使用全文索引?

mysql myisam full-text-search

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

具有子集合的Cloud Firestore架构

我正在从Firebase实时数据库切换到Cloud Firestore.我的数据库包含拥有存储的用户,每个存储包含Box.每个用户可以拥有多个包含Box的存储.每个存储可以包含多个Box.每个Box只能在一个存储中.

在我的应用程序的主视图中,对于该特定用户,我需要列出每个存储中包含Box的所有存储,如下所示:

Storage 1:
    Box 1
    Box 2
Storage 2:
    Box 3
    Box 4
    Box 5
...
Run Code Online (Sandbox Code Playgroud)

然后,用户应该能够进入每个Box以查看内容和更多信息.

在Firebase实时数据库中,每个用户可以获得一个请求.现在有了Firestore,我不知道如何创建最好的模型,因为我只能进行浅读.如果我使用子集合,我无法在一个请求中将所有连接的Box存储到它.然后获取所有Box,我需要首先执行一个请求以获取所有存储,然后为每个存储获取一个Box.

我对Firestore中的结构的想法将是以下之一,但我不确定它是要走的路:

结构1:

使用两个单独的集合

Storages Collection
    storage_1:
        name: "Storage number one"
        user_id: "1"
    storage_2:
        name: "Storage number two"
        user_id: "1"

Boxes Collection
    box_1:
        storage_id: "1"
        user_id: "1"
    box_2:
        storage_id: "1"
        user_id: "1"
Run Code Online (Sandbox Code Playgroud)

此解决方案的问题是在为特定用户加载Boxes集合时如何获取存储的名称.然后我还需要在本地每个存储下对它们进行排序.

我对结构的另一个想法是:

在Storage Collection下使用两个单独的集合和一个字典.

Storages Collection
    storage_1:
        name: "Storage number one"
        user_id: "1"
        boxes: [{ box_id: "1", name: "Box number 1" }, { box_id: "2", name: "Box number 2" …
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-firestore

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

Firebase 远程配置条件中的应用版本

我正在将 Firebase 用于我的 iOS 应用。对于使用我的应用程序旧版本的用户,我希望能够强制他们从 App Store 更新他们的应用程序,以便能够继续使用该应用程序。为此,我正在检查应用程序中的远程配置值,如果确实如此,用户将收到一条全屏消息进行更新。在 Firebase 控制台远程配置中,我正在检查应用程序的版本以将远程配置值设置为 true/false。见下图。

问题是我希望能够使用“where version < X”来设置值,或者如果这是不可能的,至少能够选择一个以上的版本(其中版本是 X 或 Y 或 Z)。

这一定是一个常见的用例,但我不知道如何做到这一点。有谁知道怎么做?我可以使用正则表达式,但如何使用?

Firebase 控制台中的远程配置

firebase firebase-remote-config

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

FCM 向多个设备发送消息 - 使用哪种方式?

发送 FCM 消息的方法有多种,即使我一遍又一遍地阅读文档,我也不知道该使用哪一种。

我的用例:我有一个用户在她的 iPhone、iPad 和 Android 平板电脑上登录了该应用程序。我想确保推送通知发送到她的所有设备。

有三种方法可以做到这一点(我使用管理员发送推送通知):

  • 主题消息传递(messaging().sendToTopic):我的理解这是为了向更大的组发送相同的通知。例如,主题可以是所有想要纽约天气通知的用户。不适合我的用例。

  • 发送多播 (messaging().sendMulticast([array of tokens]):我的理解这将向数组中的所有设备令牌(最多 100 个)发送相同的消息。这对于我的用例来说似乎很完美,对吧?

  • 设备组消息传递(messaging().sendToDeviceGroup):我不太明白这一点。为什么使用它而不是多播或主题?

对于我的用例,最好的方法似乎是每次更新 FCM 令牌时,我都会将此令牌添加到数据库中的用户。然后,我使用 admin.messaging().sendMulticast([array of tokens]) 发送通知。这是您推荐的吗?为什么或者为什么不?

firebase firebase-cloud-messaging

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

与Firestore侦听器分离

我正在将Firestore与Swift一起使用。

我有一个单例数据类UserManager。我从不同的ViewControllers调用它来获取数据以填充表视图。我希望表视图在集合更新时自动更新,因此我需要使用SnapshotListener。一切正常,但是我不确定在关闭Viewcontroller时如何从侦听器分离。

在单例类中,下面有这样的方法。该方法提供了一个用户列表,将在我的应用程序中的多个不同位置调用该方法。

我还想返回对侦听器的引用,以便在关闭Viewcontroller时可以将其分离。但是我无法正常工作。以下解决方案给出了编译器错误。

我一直在尝试查看参考,例如在这里 https://firebase.google.com/docs/firestore/query-data/listen,但是当数据加载到单例类中时,我需要使其工作直接在Viewcontroller中。去这里的路是什么?

在UserManager中:

func allUsers(completion:@escaping ([User], ListenerRegistration?)->Void) {
    let listener = db.collection("users").addSnapshotListener { querySnapshot, error in
        if let documents = querySnapshot?.documents {
            var users = [User]()
            for document in documents {
                let user = User(snapshot: document)
                users.append(user)
            }
            completion(users, listener)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在ViewController中:

override func viewDidLoad() {
    super.viewDidLoad()
    UserManager.shared.allUsers(completion: { (users, listener) in
        self.users = users
        self.listener = listener
        self.tableView.reloadData()
    })
}

deinit {
    self.listener.remove()
}
Run Code Online (Sandbox Code Playgroud)

ios firebase swift google-cloud-firestore

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