我正在尝试在React Native应用程序中集成Firebase支持的RecyclerView.使用硬编码数据可以很好地工作,但是在插入动态加载的行并在RecyclerView.Adapter上调用notifyItemInserted()或notifyDataSetChanged()时,RecyclerView本身并不反映这一变化.这将显示为初始空白视图,直到点击应用程序的刷新按钮,其唯一效果是从React Native端重新渲染RecyclerView,或直到滚动或屏幕方向更改为止.
在阅读了本网站上的十几个或更多问题后,关于不涉及React Native的类似问题并尝试了大多数常见解决方案,我怀疑这个问题与React Native有关.
鉴于React Native的列表视图实现存在持续性能问题,找到解决方案可能对许多人有所帮助.
public class PostsAdapter extends RecyclerView.Adapter<PostsAdapter.ViewHolder> {
ArrayList<Post> mDataset;
public PostsAdapter(ArrayList<Post> list){
mDataset = list;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public LinearLayout mPostView;
public ViewHolder(LinearLayout v) {
super(v);
mPostView = v;
}
}
@Override
public PostsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
LinearLayout v = (LinearLayout) LayoutInflater.from(parent.getContext())
.inflate(R.layout.post, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
TextView tv = (TextView) holder.mPostView.findViewById(R.id.title); …Run Code Online (Sandbox Code Playgroud) android reactjs android-recyclerview react-native firebase-realtime-database