标签: conductor

如何将lateinit Kotlin属性设置为null

下面的类有一个非常独特的生命周期,这需要我暂时清空lateinit属性

class SalesController : BaseController, SalesView {
    @Inject lateinit var viewBinder: SalesController.ViewBinder
    @Inject lateinit var renderer: SalesRenderer
    @Inject lateinit var presenter: SalesPresenter
    lateinit private var component: SalesScreenComponent

    override var state = SalesScreen.State.INITIAL  //only property that I want to survive config changes

    fun onCreateView(): View {  /** lateinit variables are set here */ }
    fun onDestroyView() {
         //lateinit variables need to be dereferences here, or we have a memory leak 
         renderer = null!! //here's the problem: throws exception bc …
Run Code Online (Sandbox Code Playgroud)

kotlin conductor kotlin-null-safety

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

使用Android DataBinding进行共享元素转换

我正在将Conductor API与Android DataBinding一起使用,并且一直在尝试从控制器视图到另一个控制器视图进行简单的共享元素转换,但它无法正常工作.

点击demoS列表中的"Android数据绑定"演示将带您进入一个屏幕,点击显示的textView应该将其转换到下一个屏幕.

但是现在它已经消失了.

这是的东西,这里有一张相同的.

更新:我认为在BindedBaseController类中有些不对劲

public abstract class BindedBaseController extends Controller {

    private ViewDataBinding mViewDataBinding;

    protected BindedBaseController() {
    }

    protected BindedBaseController(Bundle args) {
        super(args);
    }

    protected abstract View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container);

    @NonNull
    @Override
    protected View onCreateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
        View view = inflateView(inflater, container);
        mViewDataBinding = DataBindingUtil.bind(view);
        onViewBound(view);
        return view;
    }

    protected void onViewBound(@NonNull View view) {
    }

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android shared-element-transition android-databinding conductor

6
推荐指数
0
解决办法
483
查看次数

在(Espresso)Android工具测试中启动特定的导体控制器

我正在为使用Conductor编写的应用程序编写Espresso测试。我想为每个测试指定要启动哪个控制器,这样我就不需要Espresso从每个活动的开始Activity中单击应用程序。由于只有一个活动,并没有太多的SO或google一下指挥我能找到最接近的是这个问题吗?还是不可能?

我尝试将路由器设为静态并添加吸气剂,以尝试设置特定的根进行测试,但均未成功。

android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。

在MainActivity中:

public static Router getRouter() {
    return router;
}
Run Code Online (Sandbox Code Playgroud)

在仪器测试中:

@Rule
public ActivityTestRule<MainActivity> testRule = new ActivityTestRule<>(MainActivity.class);

@Before
public void setUp() {
    Router router = testRule.getActivity().getRouter();
    router.setRoot(RouterTransaction.with(new ControllerIwantToTest()));
}

@Test
public void titleIsDisplayed() {
    onView(withText("My Controllers Title")).check(matches(isDisplayed()));
}
Run Code Online (Sandbox Code Playgroud)

java testing android android-espresso conductor

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

Android Conductor-如何将一个控制器作为视图插入到另一个控制器?

我有一些具有自己实现的控制器类。是否可以在视图组中将一个视图插入另一个视图?

conductor

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

Netflix 指挥 - Orkes 还是自我管理?

有人在生产代码上使用 Netflixconductor 吗?如果是,您是使用 Orkes 的托管版本还是自己直接集成和管理?希望在这里有任何见解,因为我们对如何选择感到困惑。

我们尝试了直接集成的 POC,但在使用 Postgres 进行持久性和其他部署相关问题时遇到了问题,并且在调试问题时无法找到良好的社区帮助。

conductor netflix-conductor

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