2017-09-16 13 views
0

からそれらを削除せずにアイテムを非表示にする:Recyclerview:私はかなりしばらくの間、そのために検索してきたし、適切な答えが見つからないいるArrayListの

を削除せずにRecyclerViewから項目を削除する方法はありますそれは基本となるArrayListからですか? 特定の条件が満たされたときに、リストからアイテムを一時的に隠す機能を追加したいと考えています。私は後でそれらのアイテムを後で必要としますが、2つの別々のArrayListを管理することはあまりにも複雑です。 アダプタ内のアイテムの可視性をgoneに設定した場合、項目が表示されている場所がわかります。そのため解決策はありません。

2つの別々のArrayListsの管理を避ける方法はありますか?あなただけのオブジェクト型モデルクラスのブール値は、真/偽合格

JsonResponseからJsonDataを反復しながら、Object型

のモデル/ POJOクラスを持っている

+0

アイテムの可視性を「GONE」に設定したときに、RecyclerViewの外観をスクリーンショットで投稿できますか? –

+0

アダプタコードを掲載してください。 –

答えて

0

あなたがオブジェクト型のArrayListのを持っています。表示したいデータがtrue以外の場合はfalse、後でModelクラスに対して 'false値をtrueに設定することができます。

これがうまくいくと思います。

+0

私は質問は、単一のビューではなく、行全体を非表示にすることだと思います。 –

+0

サーバからデータをロードする前に、アダプタレイアウト(row_item)でアクティビティをマップし、recyclerview/Listviewでアダプタを設定します。データを取得した後に 'adapter.notifyDataSetChanged'を実行しないと、リストビューは空白/非表示になります。ビューを表示させたいときはいつでも、notifyDataSetChangedを実行してください。 –

+0

なぜデータを取得した後にアダプタに通知しませんか?また、ビューが行に膨らんでしまうのを防ぐ確かな行はまだありません –

0

実際にデータモデルから削除する必要があると思います。さもなければ、空白の行が表示されるか、スクロールすると、 "隠された"リサイクルされた要素が混乱するでしょう。

あなたがArraylistから削除しただけで、削除されたアイテムを(一時的に)保存するために別のリストを追加することはできません。あなたはどの項目あなたが削除した、HashMapのは良いかもしれに関するより良い機能が必要な場合

例えば、アダプター

private List<Item> removed = new ArrayList<>(); 

public void remove(int position) { 
    removed.add(items.get(position)); 
    items.remove(position); 
    notifyDataSetChanged(); 
} 

でこれを定めます。

関連する問題