Introdução ao RecyclerView

14
Introdução ao RecyclerView

Transcript of Introdução ao RecyclerView

Page 1: Introdução ao RecyclerView

Introdução ao RecyclerView

Page 2: Introdução ao RecyclerView

Desenvolvedor Mobile

Page 3: Introdução ao RecyclerView

Meu apps pessoais

https://goo.gl/sVpNU7https://goo.gl/Y7D9X

Page 4: Introdução ao RecyclerView

Surgiu no Android Lollipop junto com o Material Design.Foi criado para "substituir" o ListView. Tem como objetivo reaproveitar as views, ele recicla e implementa usando o padrão ViewHolder.

Page 5: Introdução ao RecyclerView

Vantagens• Suporte a animações ao adicionar e remover itens

da lista;

• Controle automático da reutilização das views;• Permitir alterar o gerenciador de layout para

rendereizar as views como listas, grids, etc.

Page 6: Introdução ao RecyclerView

compile ‘com.android.support:recyclerview-v7:23.1.0’

Page 7: Introdução ao RecyclerView

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" />

/res/layout/activity_recycler.xml

Page 8: Introdução ao RecyclerView

public class RecyclerActivity extends Activity {

RecyclerView mRecyclerView;

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

mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(new BasicListAdapter(this)); }

}

Page 9: Introdução ao RecyclerView

O Adapter do RecyclerView utiliza o conceito de Generics, com isso os métodos onCreateViewHolder() e onBindViewHolder() recebem o tipo genérico usado na classe.

Page 10: Introdução ao RecyclerView

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private Context context; private List<Object> list;

public onCreateViewHolder(Context context, List<Object> list) {…}

@Override public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { //Cria uma subclasse de RecyclerView.ViewHolder View view = LayoutInflater.from(context).inflate(R.layout.my_adapter, viewGroup, false); MyViewHolder holder = new MyViewHolder(view); return holder; }

@Override public void onBindViewHolder(final MyViewHolder holder, final int position) { //Receber o índice do elemento e atualiza as views que estão //dentro do ViewHolder }}

Page 11: Introdução ao RecyclerView

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { //onCreateViewHolder() e onBindViewHolder()

public static class MyViewHolder extends RecyclerView.ViewHolder { public MyViewHolder(View view) { //Implementação…. } }

}

Page 12: Introdução ao RecyclerView

O RecyclerView provê maior controle sobre

os itens na tela

Page 13: Introdução ao RecyclerView

@Overridepublic void onBindViewHolder(final MyViewHolder holder, final int position) { String name = list.get(position); textViewNome.setText(mDataset.get(position)); textViewNome.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { remove(name); } });}

Page 14: Introdução ao RecyclerView

Obrigado

@[email protected]