2

私は他の情報に加えて、画像、画像スライダ(サードパーティのライブラリ)またはビデオ(YouTubeAPI)を含むカードを持っています。以前私はレイアウト、3つのメディア要素(画像、スライダ、ビデオ)すべてをカードに入れ、必要に応じて可視性を修正し、不要な要素を隠し、必要なものだけを残しました。Android。 RecyclerViewでフラグメントを使用するのは間違いありませんか?

その後、私はその断片を使ってみることにしました。 3つのフラグメントは、各アイテム(クラスのフラグメントにはすべてのロジック要素が含まれていることに注意してください。初期化するパラメータを渡すだけで残りは自分自身で行います)をRecyclerViewで使用しようとしました。以前の私のカードには3つの要素がありましたが、今ではカードの特別な容器に正しい断片を入れたいと思っていました。

また、RecyclerViewのフラグメントの使用は悪いことです。質問 - 単純化のためにフラグメントの使用が価値があります(これらのフラグメントは他のActivitiでも使用されていますが、今ではメディア要素のすべてのロジックがフラグメントクラスに移動しています)。 または、古いスキームを使用する必要があります - カードには、動的に表示/非表示にして、必要に応じて入力するすべてのメディアアイテムが直接含まれていますか?

enter image description here

+0

複数の種類を意識することが可能ですこの場合は不要で、構造が複雑になります。 DataBindingを調べ、MVVMを使用する。アイテムの視認性をシームレスに処理でき、RecyclerViewと美しく統合されます。 – AgileNinja

答えて

1

私はあなたの条件は、ビューを変更することでどのような絶対的に明確ではありませんよ。 RecyclerView内の各フラグメントはViewHolderです。

これは価値読み出してもよい。

Heterogenous Layouts inside RecyclerView

  • RecyclerViewは異なるコンポーネントでのコンテナとして断片を用いViewHolder
+0

マイカードビュー(リサイクラービューアイテム)には、メディアアイテム(画像、画像スライダーまたはビデオ)が1つしか含まれていない可能性があります。リサイクラービューを使用しているので、作成したカードビューを作成して再利用する必要があります。私はそれを行うための最善の方法を探しています。 – Mikhail

+0

注:メディアごとに別々のカードビュータイプを作成する必要はありません。カードビューには、変更されていない他のビューが含まれています。メディア要素はカードビューの一部に過ぎず、動的に変更される可能性があります(画像、画像スライダまたはビデオ)。 – Mikhail

+0

上記の方法を使用すると、リサイクラビューで3種類のViewHoldersを認識できます。 ViewHolderごとに3つのレイアウトを作成します。これらの共有ビュー要素を持つ第4のレイアウトを作成し、xmlにタグを使用します。 [でレイアウトを再利用する](http://developer.android.com/training/improving-layouts/reusing-layouts.html) – apelsoczi

関連する問題