问题标签 [mortar]

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.

0 投票
3 回答
5029 浏览

android - 未注册注入。您必须将其显式添加到您的模块之一中的“注入”选项中

嗨,我是 dagger 的新手,并试图用简单的 android 应用程序来研究它。

即使有注入此视图的模块,我也会从标题中得到错误。谁能帮我弄清楚为什么它不注入视图?

这是我的应用程序的主要模块:

另一个注入我观点的模块:

如您所见, SidemenuScreen.ModuleinjectsSidemenuView和 addTo AppModule。我错了吗 ?

ObjectGraph 在onCreate()我的 Application 类的方法中是这样创建的:

应该注入的视图

和使用所有这些东西的活动:

这里使用了这个滑动菜单库:

因此,当menu.setMenu(R.layout.sidemenu);调用它时,它会膨胀视图并从发生错误Mortar.inject(context, this);的构造函数中调用。SidemenuView

这是后台堆栈:

0 投票
1 回答
280 浏览

android - Mortar:在一个 Activity 中有几个相同视图的实例

是否有可能在一个带有 Mortar 库的 Activity 中有几个相同视图的实例?在这种情况下如何初始化 Activity 的范围?或者应该以某种方式为每个视图创建一个单独的范围?

我想要的是:

我的活动 - 我的视图 (id:1) - 我的视图 (id:2)

我试过了,但是我的 Presenter 的 onLoad/onSave 都搞砸了。

0 投票
0 回答
374 浏览

flow - 共享组件的流动和砂浆过渡

我想知道是否可以使用共享组件制作屏幕转换动画,如 Activity 转换,因为它经常用于 Android Lollipop 和 Material 设计。谢谢。

0 投票
1 回答
601 浏览

java - 如何@Provide 为 MortarActivityScope 提供一个 Activity,而不会在方向更改时泄露 Activity?

我有一个 Mortar 应用程序,其中 MortarActivityScope 作为根范围下的第一个子项。MortarActivityScope 有一个 ActivityScope,它 @Provides 为注入的类提供一个活动:

在方向改变发生之前,这很好。在 Mortar 示例项目中,Activity 范围不会在方向更改时被破坏。这大概是为了允许@Singleton 演示者、屏幕等在方向变化时保持不变。您可以在示例项目的主要活动中的 onDestroy() 方法中看到这一点:

然而,这样做意味着旧的 ObjectGraph 在方向变化时仍然存在。我观察到Mortar.requireActivityScope不会用新蓝图提供的新模块替换旧活动范围中的模块。相反,对象图保留了对前一个模块的引用,包括已销毁的 Activity。

@Provides ActivityMortar 示例活动似乎通过在主模块中不包含方法来解决此问题。但是不MortarActivityScope应该能够注入活动吗?这样做的首选方法是什么,而不会Presenter在方向更改时丢失所有单例对象(对象等)?

0 投票
0 回答
96 浏览

android - 流示例 SimpleSwitcher 子容器

在 Flow 示例应用程序的最新更新中,您介绍了SimpleSwitcher,它使用 PathContext 作为允许自定义子容器的一种方式。

您能否详细说明这个术语和/或举例说明子容器的含义?

还有它如何影响 Mortar 的实现?由于创建 Mortar 范围需要父上下文,因此 PathContext 将创建一系列屏幕范围:即 HomeScreen -> ListScreen -> DetailsS​​creen ,每个都取决于其祖先。因此,当我破坏 HomeScreen 范围时,我失去了其余的屏幕范围并变得非常难过。离开之前的屏幕范围后,我看不到保留它们的意义,而是宁愿让 ActivityScope 成为每个屏幕范围的父级(类似于前面的 Mortar 示例)。这种情况需要不同的 ScreenSwitcher impl 还是我只是遗漏了什么?

编辑:ScreenSwitcher,而不是 ScreenScoper

0 投票
1 回答
362 浏览

android - 通过 otto 事件将更新的列表元素传送到 Mortar 的屏幕

我正在尝试将Mortar用于一个简单的应用程序,该应用程序显示了基于迫击炮样本的项目列表。

我正在使用Retrofit/Gson来获取这些项目的元数据,并在项目下载后使用 Otto 向视图提供更新。我也在使用 Dagger 来创建对象。

我有一个ItemList实现ListView显示列表中项目的类,以及一个ItemListScreen实现mortar.Blueprint.

我想知道将更新适配器项目的订阅方法放在哪里的最佳位置?目前,我将它放在下面,ItemListScreen.Presenter但从未调用过 subscribe 方法!

0 投票
1 回答
1364 浏览

hadoop - pig 脚本:count 在空字段上返回 0

我有一个猪脚本,它通过 json 的“公司”部分加载文件。当我执行计数时,如果文件中缺少域(或为空),则计数为 0。我怎样才能将它分组为空字符串并仍然计数?

文件示例:

预期成绩:

实际结果:

当前的猪脚本:

谢谢您的帮助!

0 投票
1 回答
680 浏览

java - Mortar 和 Flow 的 onActivityResult 等价物?

我正在寻找一种方法来使用Flow从屏幕返回结果,而不会丢失前一个屏幕中构建的内容,类似于我对 onActivityResult 所做的事情。例如,这是我正在创建新文档的屏幕:

我怎样才能做到这一点?我一直在尝试使用PopupPopupPresenter,但是关于这些的信息并不多,而且我不相信这是正确的方法,因为选择器本身就是一个屏幕。

更新 - 潜在的解决方案

根据@rjrjr下面的回答,我做了以下似乎工作正常的事情:

TakesResult.java

NewDocumentScreen.java

选择AuthorScreen.java

0 投票
1 回答
157 浏览

mortar - Mortar 中的 ActionBar 所有者

在 Mortar 中,我很好奇人们如何处理 ActionBar,如果它根据显示的屏幕发生变化。例如,如果某个屏幕正在显示,您想更改 ActionBar 标题或操作。

注入 Activity 似乎是一个糟糕的主意,并且您希望演示者(或视图,我想)能够在屏幕旋转后获得正确的操作栏。

这里有我遗漏的特别有效的模式吗?我的所有解决方案都有效,但比我希望的要尴尬。

0 投票
1 回答
120 浏览

mortar - 将视图类放入布局而不是在视图类中膨胀布局的原因是什么?

迫击炮视图不会直接膨胀它的内容。相反,假设具有迫击炮视图的布局将具有嵌套在其中的视图内容。

我觉得管理视图与其布局之间的连接变得更加困难。

将视图类放入布局而不是在视图类中膨胀布局的原因是什么?