Kotlin扩展/合成属性:多个调用中的相同对象Fragment.onViewCreated()
我正在使用kotlin-android-extensions从我的布局导入合成视图属性到我的片段。 在我的onViewCreated()
片段方法中,我正在EditText
视图上调用addTextChangedListener()
是一个合成的导入。 这在第一次实例化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()
来访问我的视图,而不是合成参考,但我想知道是否有其他人正在运行这个问题,如果有更好的方法来处理它(其他比不使用综合视图参考。)
FYI:使用Kotlin版本1.0.6 。