0

私の問題は、ここで私がここで遭遇したすべてのものの反対であるようです。notifyDataSetChanged()を呼び出していないのにデータが変更されていますか? RecyclerViewとアダプタのライフサイクル?

は、私は次のコードがあります

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
    recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
    MyAdapter adapter = new MyAdapter(this); 
    recyclerView.setAdapter(adapter); 
    adapter.buildModels(); 

をだから私は、一次処理業者ビューにアダプタを設定し、私はモデルを構築します。したがって、アダプター内のgetItemCount()が0の短い時間があります。 どこでもnotifyDataSetChanged()を呼び出すことはありませんが、buildModels()を呼び出した後、アダプターはモデルの表示を開始します。私は、RecyclerViewのソースコードの中でいくつかのオブザーバーを見てきました。

これをテストするために、adapter.buildModels()の直後にメソッド "adapter.addOneMoreItem()"を追加しました。また、アダプタは新しいアイテムを表示する方法も知っています。

質問:正確にnotifyDataSetChanged()が必要なのはいつですか?ユースケースは何ですか? RecyclerViewとアダプタの正確なライフサイクルは誰でも知っていますか?

コメント: MyAdapterが正規アダプタである - > パブリッククラスMyAdapterが延びるRecyclerView.Adapter < RecyclerView.ViewHolder> {}

+1

すべてのコード(5行)次のフレームが描画される前に、シーケンス*で実行され:ここ

は、ソースコードまたはRecyclerViewあります。どの時点でRecyclerViewは実際にすべてを設定します。通知しなくてもアダプタを変更した場合は、クラッシュします(不整合状態が検出されました)。 –

答えて

関連する問題