0

私はRecyclerViewに文書の1日あたりの変更リストを表示しています。アイテムなど、「削除5行目」「に...更新・ライン3」、のような値ビューのViewHolderハンドル2種類のTextView次のとおりです。CardViews内にRecyclerViewの要素を埋め込む

  • ヘッダ:日です。これらは単純ですより大きな、太字であり、あまりにもTextViewなど
  • ログ:それは私が話していたものだ:「ラインは3更新...」など

私が望む何をされますそれに対応するログが「CardView」に埋め込まれていることを確認してください。しかし、文書は1日に膨大な数の変更を行うことができます(> 100)。だから、プログラムで、CardViewをルートにしてレイアウトを作成し、addView()を100回呼び出して各ログを追加してから、このレイアウトをRecyclerViewに渡すのは良い考えではありません。

CardViewの内部に埋め込まれる「positionStart」ビューと「positionEnd」ビューの間を区切る方法はありますか?これは不可能であるか、またはそれぞれをプログラムでCardViewの中に追加することで表示されますが、ビューのバインディングが遅くなり、ViewHolderパターンが破損する可能性があります。私は正しいと思いますか、私が考えなかった彼らの解決策ですか?

答えて

1

この「カードにグループ化」の動作を達成する3つのオプションがあります。

  1. (前述のように)レイアウトを自分で作成し、全体をrecyclerviewに入れます。これはおそらく最悪の解決策です。なぜなら、最初はリサイクル業者の見解を否定するからです。

  2. CardViewに商品をラップするだけです(コーナーの半径を0dpに設定してください)。
    On < 21デバイス(私は思う)はいくつかの追加のパディングがあり、すべてのアイテムは独自のカードとして表示されますが、より高いAPIバージョンではそれらのカードは互いに隣り合っていて、それらの間にいくつかの "継ぎ目"があります。コーナーの影も少しバギーですが、これはおそらく最も簡単で安価な解決策です。

    また、上記のエラー(影と影の間のマージン)を修正し、独自のものを使用してビューをラップするカスタムビューを作成することもできます。 (これは、私が正しく思い出すと、受信トレイアプリが行うものだと信じています。カードのリストもあります)

  3. ItemDecorationを使用します。この方法では、データセットの安定したセットアップが必要ですが、ヘッダーとログだけの場合は、ヘッダーの上に影を描き、各項目の左右に境界線を描き、最後に影を描くことができますログ。


1.方法はおそらくある(それはあなたのデータセットに大きく依存します)これはまた、いくつかのセットアップが必要になりますし、あなたはさらにビューの種類を紹介している場合、あなたはまた、このコードを変更する必要があります最悪のアイデア。それは小さなリストのために働くでしょう。

2。メソッドは動作しますが、独自のカスタムビューを作成するか、APIレベルの低い「盗難」バージョンでライブする必要があります。

3.メソッドは、一度試してみたところ、機能しますが、データ、アダプタ、および装飾の間にいくつかの依存関係があります。このdecoration here on GitHubの例を見ることができます。すべてのアイテムの周りに影を描くだけです。

+0

ごめんなさい、ごめんなさい、プロジェクト管理のおかげで、私はこの作業をすることができませんでした。でも、私はあなたの 'ItemDecoration'を試してみました。私はちょうど最後のアイテムに問題があります、それは 'CardView'の底の影を表示しません。私は問題が 'onDrawOver'の中にあると仮定しましたが、最後の項目(これはヘッダーかどうかは関係ありません)の時に検出することができましたが、私はAndroidで描画するのが非常に悪く、適切な場所に下の影を設定することができます。まだ偉大で詳細な答えをありがとう! – MHogge

関連する問題