Tag: 指挥

Android指挥:如何保留定位变化的观点

我目前正在学习Android的Conductor框架,并且对它的工作原理有一些问题或误解。 我当时的印象是这个方法 setRetainViewMode(RetainViewMode.RETAIN_DETACH); 将在控制器中保存视图的状态。 为了测试行为,我添加了EditText视图,在其中输入了一个值并旋转了屏幕。 我还添加了2个视图与onclick听众附加,改变背景颜色onclick 测试的结果是EditText视图保持了状态并保存了输入的值。 但是2个视图,改回了原来的背景颜色(无)。 这是视图的行为,而不管设置了哪个RetainViewMode 我有这个简单的MainActivity(注意:我正在写Kotlin): class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var router: Router = Conductor.attachRouter(this, controller_container, savedInstanceState) if (!router.hasRootController()) { var t : TestController = TestController() t.retainViewMode = Controller.RetainViewMode.RETAIN_DETACH router.setRoot(RouterTransaction.with(t)) } } companion object doTask { fun start(activity : Activity) { val intent […]

如何将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() […]