1. ホーム
  2. android

特定の条件でRecycler Viewからアイテムを非表示にするには?

2023-10-20 20:46:16

質問

Firebase Recycler Adapter (Firebase UI Library)を使って、Recycler Viewにデータを入力しています。ある条件でアイテム(行)を非表示にしたいのですが、どうすればよいですか? 私は、リサイクラービューを含むLinearLayoutを持っています。

でLinearLayoutのvisibilityをGoneに設定しました。 populateViewHolder() メソッドで設定します。

@Override
protected void populateViewHolder(UsersViewHolder viewHolder, User user, int position) {

    if (user.getUserEmail().equals(Utils.decodeEmail(userEmail))) {
        viewHolder.llMain.setVisibility(View.GONE);
        return;
    }

    viewHolder.tvUserEmail.setText(user.getUserEmail());
}

LinearLayoutを非表示にしていますが、行は空いたままです。

これを克服するためにオーバーライドすべきメソッド、または結果を達成するための方法はありますか?

どのように解決するのですか?

UsersViewholderレイアウトxmlから、すべてのビューまたは親を非表示にする必要があります。 ビューホルダー全体または各ビューを非表示にする

ビューホルダー全体を隠す。

itemView.setVisibility(View.GONE);

または各要素を

view.setVisibility(View.GONE);

しかし、それらを設定することを忘れないでください VISIBLE にしないと、リサイクルでおかしなことになります。