小编Tre*_*Cai的帖子

为什么RecyclerView.notifyItemChanged()将创建一个新的ViewHolder并使用旧的ViewHolder和新的ViewHolder?

最近我使用RecyclerView并添加自定义标题视图(另一种类型的项目视图)并尝试在数据更改时更新它.奇怪的事发生了.适配器创建一个新的HeaderViewHolder,并使用新的HeaderViewHolder和旧的HeaderViewHolder.

这是样本.

MainActivity.java

public class MainActivity extends ActionBarActivity {

  private RecyclerView mRecyclerView;

  private MyAdapter mAdapter;

  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mRecyclerView = (RecyclerView) findViewById(R.id.list);
    LinearLayoutManager llm = new LinearLayoutManager(this);
    llm.setSmoothScrollbarEnabled(true);
    mRecyclerView.setLayoutManager(llm);
    mRecyclerView.setAdapter(mAdapter = new MyAdapter(this, genItemList()));
  }

  @Override public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
  }

  @Override public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The …
Run Code Online (Sandbox Code Playgroud)

android android-layout

32
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×1

android-layout ×1