我们正在使用自定义ListViewAdapter
在我们的Android应用中构建列表。 ListView
中的每一行都有一个按钮。我们还使用自定义Observable<Object>
类作为我们的可观察对象。
在ListViewAdapter
中,在getView(...)
方法中,我正在为给定行的按钮创建观察者,然后我将该观察者添加到适配器中的PublishSubject
。
我遇到的问题是当列表滚动并且视图开始被回收时:
PublishSubject
PublishSubject
?答案 0 :(得分:0)
您需要在附加/分离项目视图时订阅/取消订阅您的观察信息,例如RecyclerView
ViewHolder
class MyViewHolder extends RecyclerView.ViewHolder
implements View.OnAttachStateChangeListener
{
private Disposable mDisposable;
MyViewHolder ( View itemView )
{
super( itemView );
itemView.addOnAttachStateChangeListener( this );
}
@Override
public void onViewAttachedToWindow( View v )
{
if( mDisposable != null )
mDisposable.dispose( );
mDisposable = myObservable.subscribe();
@Override
public void onViewDetachedFromWindow( View v )
{
if( mDisposable != null )
mDisposable.dispose( );
}
}