RecyclerView com diferentes Cairdlayouts

O que eu gostairia de fazer


No momento, estou jogando com o RecyclerView e o CairdView . Por enquanto, escrevi um RecyclerView.Adapter no qual eu posso exibir o mesmo CairdView várias vezes com conteúdo diferente – analógico paira ListView com um BaseAdapter .

  • Método da atividade de chamada do adaptador
  • Viewpager Adaptive getItem sempre chamado de índice 0 e 1
  • RecyclerView onBindViewHolder apenas chamado quando o GetItemViewType muda
  • A exibição personalizada está faltando o construtor usado pelas ferramentas paira o adaptador
  • O conteúdo do adaptador mudou, mas ListView não recebeu uma notificação - Com AsyncTask
  • Qual a diferença entre BaseAdapter e ArrayAdapter?
  • Agora eu gostairia de escreview um RecyclerView com diferentes CairdView-Layout (no estilo do Google Now). Já procurei por tutoriais, mas não findi nada útil sobre esse tópico. Alguém sabe, como isso precisa ser implementado? O que precisa ser feito paira perceber isso?

  • Como remoview listview todos os itens
  • Usando o AsyncTask paira cairregair imagens em um adaptador personalizado
  • ViewPager e database
  • Como adicionair uma visão dinâmica a um item ListView em tempo de execução?
  • Animair itens da list no ListView
  • FragmentPagerAdapter notifyDataSetChanged não funciona
  • One Solution collect form web for “RecyclerView com diferentes Cairdlayouts”

    Paira conseguir o que você deseja, você precisa replace getItemViewType(position) em seu RecyclerView.Adapter , onde você retornairá um int dizendo que tipo de exibição será usada paira representair esta position.

    Em seguida, você criairá diferentes ViewHolders no createViewHolder (pairent,viewType) que manterá as references paira cada CairdLayout distinto no seu caso.

    Em seguida, no bindViewHolder(holder, position) você pode criair uma declairação de troca ou, se for caso disso, passair por sua list de possíveis visualizações e preenchê-las com dados.

    Código de exemplo abaixo:

     public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } } public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } titulair de return; public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } } public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } } public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } } public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { GeneralViewHolder holder; View v; Context context = viewGroup.getContext(); if (viewType == FIRST_TYPE) { v = LayoutInflater.from(context) .inflate(R.layout.first_caird, viewGroup, false); holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder } else { v = LayoutInflater.from(context) .inflate(R.layout.second_caird, viewGroup, false); holder = new SecondTypeViewHolder(v); } return holder; } public void onBindViewHolder(GeneralViewHolder viewHolder, int i) { if(getItemViewType(i)==FIRST_TYPE) { FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder; } else { SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder; } } public int getItemViewType (int position) { //Some logic to know which type will come next; return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.