検索

ホームページ  >  に質問  >  本文

android - recyclerview显示错乱

滑动的时候,不该显示的item也显示了标注(就是那个数字1)

 @Override
    public void onBindChildViewHolder(MyChildViewHolder holder, int groupPosition, int
            childPosition, int viewType) {
      //...
        if (studentBean.getGalleryCount() != 0) {
            holder.childAlbumNum.setText(" " + studentBean.getGalleryCount() + "' ");
        } else {
            holder.childAlbumNum.setVisibility(View.GONE);
        }
    //...
    }
    

PHP中文网PHP中文网2771日前685

全員に返信(2)返信します

  • 阿神

    阿神2017-04-17 17:24:44

    RecyclerView は再利用用です。つまり、各アイテムは以前に使用されたレイアウト オブジェクトを使用する可能性があります。したがって、onBindChildViewHolder に特定の View を表示するかどうかを初期化する必要があります。
    あなたのコードでは、特定の状況下でのみViewを非表示にしていますが、その表示を初期化していないことがわかりました。これは、前回表示されたのがGONEであったため、今回はデータが表示された可能性があります。が設定されていますが、VISIBLEが設定されていないため表示できません。
    あなたの質問は次のようになります。onBindChildViewHolder の先頭に

    を追加することをお勧めします。 リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 17:24:44

    その番号 1 のどこが間違っているのかわかりません?

    返事
    0
  • キャンセル返事