Kotlin扩展/合成属性:Fragment.onViewCreated()的多次调用中的相同对象

时间:2017-02-28 03:00:37

标签: android android-fragments kotlin kotlin-android-extensions

我正在使用kotlin-android-extensions将合成视图属性从我的布局导入到Fragment中。在我的onViewCreated() Fragment方法中,我在addTextChangedListener()视图上调用EditText,这是一个合成导入。这是第一次实例化Fragment时工作正常,但下次出现时,我的新侦听器将被添加到相同的视图对象中,作为最后一次调用。所以现在两个TextChangedListener对象都在文本更改时被触发,结果可预测得很差。据我所知,片段首次出现时的视图从未被解除引用。

这是我记录视图对象的输出,显示它是一样的。

首次亮相:

AmountTextWatcher (com.redacted.util.AmountTextWatcher@36d1ccc) added to amount_edit_text: android.support.v7.widget.AppCompatEditText{79e2a VFED..CL. ......I. 0,0-0,0 #7f0f013a app:id/amount_edit_text}

第二次出场:

AmountTextWatcher (com.redacted.util.AmountTextWatcher@5812584) added to amount_edit_text: android.support.v7.widget.AppCompatEditText{79e2a VFED..CL. ......ID 0,0-434,200 #7f0f013a app:id/amount_edit_text}

当然,我可以通过使用findViewById()来访问我的视图而不是合成引用来解决这个问题,但我想知道是否还有其他人参与此问题以及是否有更好的方法处理它(除了不使用合成视图引用。)

仅供参考:使用Kotlin版本 1.0.6

0 个答案:

没有答案