O novo Design de materiais do Google recomenda o uso de botões de ação flutuantes para chamar a atenção do usuário para a ação principal nessa tela. Existem muitos exemplos disso em uma exibição de lista.
Agora, suponha que sua exibição em lista tenha apenas itens suficientes para preencher a tela, impossibilitando a rolagem. Se os itens de sua lista tiverem um determinado componente com o qual o usuário possa interagir, por exemplo, um comutador ou uma estrela favorita, é possível que o botão de ação flutuante esteja bloqueando esse componente. Como devemos lidar com este caso?
EDIT: Isso realmente sempre acontece com o último item da lista. Aqui está um exemplo em que a 'estrela favorita' não pode ser usada corretamente. Também está bloqueando o conteúdo, como a hora neste exemplo.
fonte
Isso funciona para mim. Adicione preenchimento inferior ao RecyclerView
Ref: /programming/27768495/not-able-to-add-empty-view-below-recyclerview
fonte
Ressaltando a idéia "Realocar o botão" na resposta aceita, as técnicas de Rolagem, parte das diretrizes de design de material, têm uma implementação possível dessa idéia.
Ou seja, o botão de ação flutuante quebra a borda entre o conteúdo e uma barra de aplicativos com espaço flexível. Ao rolar:
https://material.io/guidelines/components/buttons-floating-action-button.html#buttons-floating-action-button-behavior
fonte
Usei isso no método onBindViewHolder de RecyclerView.Adapter para definir a margem inferior do último item da lista como 72dp, para que ele role acima do botão de ação flutuante.
Isso não requer uma entrada fictícia na lista.
fonte