问题标签 [square-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Mortar + Flow 与连接到活动生命周期的第三方库
一些第三方库在活动生命周期中使用挂钩来正常工作 - 例如,Facebook SDK ( https://developers.facebook.com/docs/android/login-with-facebook/ )。
我在弄清楚如何将这个模型与单一活动流+砂浆设置干净地协调起来时遇到了一些麻烦。
例如,如果我想使用 Facebook 登录作为登录流(w/FlowView/FlowOwner)的一部分,而不是在活动中,如果你需要在 onCreate 中为特定流设置钩子,那么最聪明的方法是什么? onResume、onPause、onDestroy、onSaveInstanceState、onActivityResult 等?
最干净的路径是什么并不是很明显——为每个生命周期活动阶段创建一个 observable 并订阅它的流?如果您不小心,似乎这条路径很快就会转移到相同的 Android 生命周期。有没有更好的办法?
我喜欢单一活动模型,如果可能的话,我真的希望一切都由流/迫击炮而不是活动来管理。或者我是否以一种从根本上使它变得比应有的更困难的方式来考虑这个问题?
android - Square Flow + Mortar 平板电脑示例
我一直在尝试使用流和砂浆作为我们 Android 应用程序的替代架构。我一直在开发一个应用程序,该应用程序目前只有一个手机布局,但我想知道如果你想为平板电脑设置不同的布局,流和砂浆架构如何工作。主细节可能是最简单的例子,但显然还有其他例子。
我有一些想法如何工作,但我想知道广场开发人员可能已经围绕这个主题想到了什么。
dagger - 如何在迫击炮演示者或视图中完成活动?
如何从演示者或迫击炮示例应用程序中的视图中完成活动?
java - 使用 Mortar + Flow 从对话框中获取用户输入
我正在使用Mortar + Flow构建我的应用程序。我试图找出正确的方法来显示一个向用户请求一些文本的弹出窗口。我创建了这个弹出类:
此类按预期工作。它使用SavedPage
来确定要在对话框中显示的内容,并在按下正确的按钮时将用户输入返回给PopupPresenter
using PopupPresenter#onDismissed 。
我的问题是编写PopupPresenter
用于呈现对话框和处理输入的子类。这就是我现在所拥有的:
正如评论所说,我没有引用SavedPage
对话框中显示的内容。它存储在 中的whatToShow
字段中PopupPresenter
,但在调用之前该字段被清空onPopupResult
。似乎我会不必要地重复自己以保留SavedPage
.
android - Android Flow 示例因 ClassNotFoundException 而崩溃
我在 Android 开发方面很天真。我尝试使用 flow/mortar 进行开发,但遇到了一个异常。
这就是我所做的。在 Eclipse 中,我从现有代码中选择了 New (Crtl N) -> Android Project,并导入了从方流网站https://github.com/square/flow/下载的流示例。Eclipse 将所有文件中的错误标记为包名称与文件位置不匹配。因此,为了解决包不匹配问题,我将文件
从:\flow-master\flow-sample\src \main\java\com\example\flow
移动到:\flow-master\flow-sample\src \com\example \流动。
在此之后,我收到了更多错误,提示“未解析为类型”,我通过导入正确的 jar 文件修复了该错误。现在所有错误都已清除,我尝试安装并启动该应用程序。
我们一启动应用程序就会崩溃,并出现以下 Logcat 错误:
该错误表示MainActivity
即使该文件在路径中可用,也找不到该文件com.example.flow.
。有人可以帮我理解问题所在吗?
安卓清单
android - Square所说的“屏幕外片段被复活”和“无法直接控制动画”是什么意思?
在发现 Android 库和框架时,我偶然发现了Square 关于 Flow 和 Mortar 的博客文章。作者指出,开发 Flow 和 Mortar 的一些动机是因为
...屏幕外的片段在奇怪的时刻神秘地复活了
...无法直接控制动画
我很难理解作者的意思。谁能详细说明作者所说的这两个痛点?
android - Building Square 的“Flow”示例应用程序:Maven 成功但无法使用 APK
我只是想为 Square 的 Flow 库构建示例应用程序,特别是来自此提交的代码:
https://github.com/square/flow/commit/38c1e12d49b20b4f7eeee6a21f339e03dac76394
我从命令行使用 mvn 。它成功完成,APK可以安装在我的设备上,但无法启动。构建过程中唯一可疑的输出是大量消息,如下所示:
但正如我所说,mvn 报告“BUILD SUCCESS”。
我认为 logcat 输出的相关部分如下:
为此,我使用了 mvn 3.2.3 和 Java 6,但我也使用了 mvn 3.1.1 和 Java 7,结果相同。
我的 mvn 路径有问题吗,因为某些类显然不包含在 apk 中?
更新:有趣的是,完全相同的操作过程在我工作的 Mac 上生成了一个可用的 APK(我的家用机器使用 Ubuntu)。所以我想这只是Maven恨我的另一个例子......
java - 如何@Provide 为 MortarActivityScope 提供一个 Activity,而不会在方向更改时泄露 Activity?
我有一个 Mortar 应用程序,其中 MortarActivityScope 作为根范围下的第一个子项。MortarActivityScope 有一个 ActivityScope,它 @Provides 为注入的类提供一个活动:
在方向改变发生之前,这很好。在 Mortar 示例项目中,Activity 范围不会在方向更改时被破坏。这大概是为了允许@Singleton 演示者、屏幕等在方向变化时保持不变。您可以在示例项目的主要活动中的 onDestroy() 方法中看到这一点:
然而,这样做意味着旧的 ObjectGraph 在方向变化时仍然存在。我观察到Mortar.requireActivityScope
不会用新蓝图提供的新模块替换旧活动范围中的模块。相反,对象图保留了对前一个模块的引用,包括已销毁的 Activity。
@Provides Activity
Mortar 示例活动似乎通过在主模块中不包含方法来解决此问题。但是不MortarActivityScope
应该能够注入活动吗?这样做的首选方法是什么,而不会Presenter
在方向更改时丢失所有单例对象(对象等)?
android - 流示例 SimpleSwitcher 子容器
在 Flow 示例应用程序的最新更新中,您介绍了SimpleSwitcher,它使用 PathContext 作为允许自定义子容器的一种方式。
您能否详细说明这个术语和/或举例说明子容器的含义?
还有它如何影响 Mortar 的实现?由于创建 Mortar 范围需要父上下文,因此 PathContext 将创建一系列屏幕范围:即 HomeScreen -> ListScreen -> DetailsScreen ,每个都取决于其祖先。因此,当我破坏 HomeScreen 范围时,我失去了其余的屏幕范围并变得非常难过。离开之前的屏幕范围后,我看不到保留它们的意义,而是宁愿让 ActivityScope 成为每个屏幕范围的父级(类似于前面的 Mortar 示例)。这种情况需要不同的 ScreenSwitcher impl 还是我只是遗漏了什么?
编辑:ScreenSwitcher,而不是 ScreenScoper
java - Mortar 和 Flow 的 onActivityResult 等价物?
我正在寻找一种方法来使用Flow从屏幕返回结果,而不会丢失前一个屏幕中构建的内容,类似于我对 onActivityResult 所做的事情。例如,这是我正在创建新文档的屏幕:
我怎样才能做到这一点?我一直在尝试使用Popup和PopupPresenter,但是关于这些的信息并不多,而且我不相信这是正确的方法,因为选择器本身就是一个屏幕。
更新 - 潜在的解决方案
根据@rjrjr下面的回答,我做了以下似乎工作正常的事情:
TakesResult.java
NewDocumentScreen.java
选择AuthorScreen.java