由于某些原因,我的recyclerView没有附加到Firebase RecyclerView适配器。我正在一个片段中实现recyclerView,该片段显示在选项卡式活动中。我的代码(相关部分):
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = LayoutInflater.from(container.getContext())
.inflate(R.layout.fragment_fresh, container, false);
// Initialize ProgressBar and RecyclerView.
mProgressBar = (ProgressBar)rootView.findViewById(R.id.progressBar);
mSessionRecyclerView = (RecyclerView) rootView.findViewById(R.id.sessionRecyclerView);
mLinearLayoutManager = new LinearLayoutManager(getActivity());
mLinearLayoutManager.setStackFromEnd(true);
mSessionRecyclerView.setLayoutManager(mLinearLayoutManager);
//implement recyclerview
mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
mFirebaseAdapter = new FirebaseRecyclerAdapter<Session, SessionViewHolder>(
Session.class,
R.layout.item_session,
SessionViewHolder.class,
//change back to SESSIONS_CHILD
mFirebaseDatabaseReference.child("test")) {
@Override
protected void populateViewHolder(final SessionViewHolder viewHolder,
Session session, int position) {
//implementing populateViewHolder..
}
};
mSessionRecyclerView.setLayoutManager(mLinearLayoutManager);
mSessionRecyclerView.setAdapter(mFirebaseAdapter);
return inflater.inflate(R.layout.fragment_fresh, container, false);
}
}
XML只是一个recyclerView和progressBar。 值得一提的是,我已经完成了this thread.Tried将recycler的大小设置为wrap_parent,将setAdapter移动到onCreate,以及几乎所有其他答案 - 无济于事。
编辑:我在活动中进行了这项工作,但每当我在片段中尝试时,我都会遇到此错误。还尝试使用常规的recyclerView和自定义适配器,同样的事情发生。 recyclelerView是否在片段中以不同方式将自身附加到适配器?
答案 0 :(得分:0)
好的,我终于修好了。问题实际上是在选项卡式活动中 - PlaceHolder片段中的getItem方法创建了PlaceHolder的新实例。 因此,我的片段甚至都没有被创造出来。 跳过布局上的所有线程都没有建议检查,希望这会有所帮助。