hereというRecyclerViewアニメーションライブラリを使用しています。 FirebaseRecyclerAdapter(here)のドキュメントも使用しています。Firebase RecyclerView - 新しいアイテムが追加されたときにアニメーションをスクロール
基本的に、アイテムがFirebaseに追加されるときに、RecyclerViewの上部にスクロールしたいと思っています。 ArrayList()やそのリストでアダプタを実際に初期化しているわけではないので、やっかいです。 Firebaseは、FirebaseRecyclerAdapterを通じてすべてのデータ管理を処理します。
@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;
}
そして、私のアダプタ:ここ
は、私の基本的なonCreateView()でアイテムが追加されるよう
@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);
}
にはどうすればRecylcerViewの最上部までスクロールでしょうか?
mLayoutManager.setReverseLayout(true);
mLayoutManager.setStackFromEnd(true);
を私はFirebase内のデータの順序を逆にする必要があるので:私は呼び出していることに注意してください。
私は実際にFirebase UIのドキュメントで見つけることができた
- 感謝を –