I think I've read pretty much all the answers to all of the similar SO questions, and NONE of them seem to be working for me. It's driving me nuts, and I've spent too much time on this.
I'm implementing a RecyclerView here and I can't for the life of me update it's children. What happens is that after I update nothing changes on the screen, UNLESS I start scrolling. Once I scroll it updates perfectly.
This is my …
android android-recyclerview react-native recyclerview-layout react-native-android
我正在尝试在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