Firebase RecyclerView – Desplácese sobre la animación cuando se añade un elemento nuevo

Estoy usando la biblioteca de animación RecyclerView que se encuentra aquí . También estoy usando el FirebaseRecyclerAdapter, documentación que se encuentra aquí .

Esencialmente, quiero desplazarme a la parte superior de la RecyclerView como elementos se agregan a Firebase. Es difícil ya que realmente no estoy inicializando el adaptador con un ArrayList (), o cualquier lista, para el caso. Firebase maneja toda la gestión de datos a través del FirebaseRecyclerAdapter.

Aquí está mi onCreateView básico ():

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment final View v = inflater.inflate(R.layout.fragment_new, container, false); Log.v("TAG", "ON CREATE CALLED FROM NEW"); mRecyclerview = (RecyclerView) v.findViewById(R.id.list); mRecyclerview.setItemAnimator(new FadeInUpAnimator()); mLayoutManager = new LinearLayoutManager(getContext()); mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); mLayoutManager.setReverseLayout(true); mLayoutManager.setStackFromEnd(true); mRecyclerview.setLayoutManager(mLayoutManager); return v; } 

Y mi adaptador:

  @Override public void onStart() { super.onStart(); mFireAdapter = new FirebaseRecyclerAdapter<Poll, PollHolder>(Poll.class, R.layout.latest_item, PollHolder.class, mBaseRef.child("Polls")) { @Override protected void populateViewHolder(PollHolder viewHolder, Poll model, int position) { mRecyclerview.scrollToPosition(position); viewHolder.mPollQuestion.setText(model.getQuestion()); Picasso.with(getActivity().getApplicationContext()) .load(model.getImage_URL()) .fit() .into(viewHolder.mPollImage); Log.v("TAG", model.getQuestion()); Log.v("TAG", model.getImage_URL()); } }; mRecyclerview.setAdapter(mFireAdapter); } 

¿Cómo me desplazaría a la parte superior de RecylcerView cuando se agreguen los elementos? Tenga en cuenta que estoy llamando:

 mLayoutManager.setReverseLayout(true); mLayoutManager.setStackFromEnd(true); 

Ya que necesito invertir el orden de los datos en Firebase.

En realidad era capaz de encontrar en la documentación de la interfaz de usuario Firebase – es necesario llamar al método .registerAdapterDataObserver( ):

  @Override public void onStart() { super.onStart(); mFireAdapter = new FirebaseRecyclerAdapter<Poll, PollHolder>(Poll.class, R.layout.latest_item, PollHolder.class, mBaseRef.child("Polls")) { @Override protected void populateViewHolder(PollHolder viewHolder, Poll model, int position) { viewHolder.mPollQuestion.setText(model.getQuestion()); Picasso.with(getActivity().getApplicationContext()) .load(model.getImage_URL()) .fit() .into(viewHolder.mPollImage); Log.v("TAG", model.getQuestion()); Log.v("TAG", model.getImage_URL()); } }; mRecyclerview.setAdapter(mFireAdapter); mFireAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onItemRangeInserted(int positionStart, int itemCount) { super.onItemRangeInserted(positionStart, itemCount); int friendlyMessageCount = mFireAdapter.getItemCount(); int lastVisiblePosition = mLayoutManager.findLastCompletelyVisibleItemPosition(); // If the recycler view is initially being loaded or the user is at the bottom of the list, scroll // to the bottom of the list to show the newly added message. if (lastVisiblePosition == -1 || (positionStart >= (friendlyMessageCount - 1) && lastVisiblePosition == (positionStart - 1))) { mRecyclerview.scrollToPosition(positionStart); } } }); } 
  • Barra de herramientas dejando espacio en blanco con ocultar en RecyclerView scroll
  • Aplicar offset a elementos GridLayout y conservar el mismo tamaño entre todos los elementos
  • Android: Control Desplazamiento suave sobre la vista del reciclador
  • Using notifyItemRemoved o notifyDataSetChanged con RecyclerView en Android
  • Cómo crear una interfaz de usuario como la aplicación Inbox de Google en Android
  • ¿Cómo añadir una vista de pie de página en RECYCLER VIEW?
  • ¿Cómo auto desplazarse hasta Recycler ver en Android?
  • Recyclerview dolorosamente lento para cargar imágenes en caché de Picasso
  • Cómo implementar ItemAnimator de RecyclerView para deshabilitar la animación de notifyItemChanged
  • Los datos del adaptador RecycleView aparecen erróneos al desplazarse demasiado rápido
  • Pulsar el botón de clic dentro de una fila en RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.