Android Kotlin扩展/合成属性:多次调用Fragment.onViewCreated()时使用同一对象

Android Kotlin扩展/合成属性:多次调用Fragment.onViewCreated()时使用同一对象,android,android-fragments,kotlin,kotlin-android-extensions,Android,Android Fragments,Kotlin,Kotlin Android Extensions,我正在使用kotlin android扩展将合成视图属性从布局导入片段。在我的onViewCreated()Fragment方法中,我正在一个合成导入的EditText视图上调用addTextChangedListener()。这在第一次实例化片段时工作正常,但下一次它出现时,我的新侦听器将被添加到与上次调用相同的视图对象中。因此,现在文本更改会触发TextChangedListener两个对象,结果不尽人意。据我所知,片段第一次出现时的视图从未被取消引用 这是我记录视图对象的输出,它显示了相同

我正在使用kotlin android扩展将合成视图属性从布局导入片段。在我的
onViewCreated()
Fragment方法中,我正在一个合成导入的
EditText
视图上调用
addTextChangedListener()
。这在第一次实例化片段时工作正常,但下一次它出现时,我的新侦听器将被添加到与上次调用相同的视图对象中。因此,现在文本更改会触发
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}
第二次露面:

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

您可以指定是在片段(通过
kotlinx.android.synthetic.main.my_布局导入)还是在视图(通过
kotlinx.android.synthetic.main.my_布局导入。*
导入)上使用合成属性吗?您期望得到什么?合成缓存将在第一个
findById(…)
之后保留引用。是否更改了视图?是否尝试在onViewDestroyed()中将侦听器设置为null?