2018 Existe um equivalente addHeaderView para RecyclerView ? Android
Existe um equivalente addHeaderView para RecyclerView ?
? nissanM @ 2014-10-23 14:39:59 | Original: StackOverFlow
Estou à procura de um equivalente a addHeaderView para uma visão reciclador. Basicamente, eu quero ter uma imagem com 2 botões de ser adicionado como um cabeçalho para o listview . Existe uma maneira diferente de adicionar uma vista de cabeçalho de uma visão reciclador ? Um exemplo para a orientação seria útil
EDIT 2 (adicionado layouts fragmento ):
Depois de adicionar as declarações de registro, parece que getViewType sempre apenas recebe uma posição de 0. Isto leva a onCreateView carregar apenas um esquema :
O fragmento de transição para carregar o CommentFragment :
O Fragmento onCreateView :
O fragmento contendo o recycleview :
O layout comentários consecutivas:
O código Adapter (graças a Hister por ter me iniciado) :
Usando o código acima, apenas o layout de cabeçalho é exibido como viewType é sempre 0. Parece que http://i.imgur.com/kWJuqTP.png . Se eu forçar o outro layout parece que http://i.imgur.com/PjBw4bl.png :
1yigit @ 2014-10-23 17:06:31
HeaderView depende LayoutManager . Nenhum dos LayoutManagers padrão apoiar este e provavelmente não vai . HeaderView em ListView cria um monte de complexidade sem qualquer benefício significativo .
Gostaria de sugerir a criação de uma classe de adaptador de base que adiciona itens para cabeçalhos se fornecido. Não se esqueça de substituir notificar * métodos de compensá-los adequadamente, dependendo se cabeçalho está presente ou não .
2hister @ 2014-10-26 13:10:33
Não há uma maneira fácil como listview.addHeaderView(), mas você pode conseguir isso através da adição de um tipo para o seu adaptador para cabeçalho.
https://gist.github.com/hister/d56c00fb5fd2dfaf279b
3mato @ 2014-11-28 21:26:54
Baseado em http://stackoverflow.com/a/26813208/2334509, eu criei uma subclasse de RecyclerView.Adapter que suporta um número arbitrário de cabeçalhos e rodapés.
Embora pareça ser uma solução, eu também acho que essa coisa deve ser gerido pelo LayoutManager . Infelizmente, eu preciso dele agora e eu não tenho tempo para implementar uma StaggeredGridLayoutManager a partir do zero ( nem mesmo estender a partir dele ) .
Eu ainda estou testando, mas você pode experimentá-lo, se quiser. Por favor, deixe-me saber se você encontrar quaisquer problemas com ele.