2016-03-26 6 views
0

FrameLayoutRecyclerViewという項目があります。その中にはアップロード/ダウンロードアクションを行うボタンがあります。 onBindViewHolderではFrameLayoutタグに一意のIDを割り当て、onViewRecycled()にはFrameLayoutのタグをnullに再割り当てします。したがって、RecyclerViewの各行には、フレームレイアウトタグに固有のタグ値が含まれている必要があります。View Recycle RecylerView中にFrameLayoutタグを削除する方法

ユーザーがアップロードボタンまたはダウンロードボタンをクリックすると、対応するアクションが実行され、操作が完了したらそれぞれのボタンが消えるはずです。

ので、操作が完了したときに、私はfindViewbyTag(pass the unique identifier)を使用してビューを見つけ、それが正常に動作し、各ボタン(ボタンはFrameLayout内にある。私はそれが消えるようにFrameLayoutアルファを変えています)。しかし、それは他のリサイクラの見解項目の中にも消えてしまいます。

以下はFrameLayoutのコードです。 SessionId

holder.uploadDownloadContainer.tag = sessionId 

onViewRecycled()各行の一意でダウンロードが完了すると、

val containerView = view?.findViewWithTag(downloadData.sessionId) as? FrameLayout 

containerView?.let { 
      onUiThread { 
       info("Fading away upload/download button") 
       containerView.animate().alpha(0f).setDuration(500).start() 
      } 
     } 

誰かがいただきました!ここで間違って行く、なぜ他の行のアップロード/指し示すことができ、コードの下に

holder.uploadDownloadContainer.tag = null 

を持っていますダウンロードボタン(FrameLayout)も削除中ですか?

答えて

0

アイテムの詳細を保存するためにモデルクラスアイテムのリストを保持してください。また、アダプターのオン・バインド・ビューで必要なビューの変更を行います。これは、状態を正しく維持するのに役立ちます。タグIDに関して値を割り当てる代わりに。アイテム状態の呼び出しを更新する必要があるときは、リサイクルビューアのnotifyメソッドが呼び出され、アイテムのオンバインドが呼び出されます。

関連する問題