【问题标题】:RecyclerView with firebase remains blank sometimes, but shows items sometimes带有firebase的RecyclerView有时会保持空白,但有时会显示项目
【发布时间】:2018-01-27 01:45:39
【问题描述】:

这个问题在这里有答案Recyclerview is not updated with new Data,但它对我不起作用。我不明白为什么有时 recyclerView 会显示项目,但有时却不会显示。我正在使用带有 viewPager 的四个框架。这不是互联网问题,因为其他片段显示来自互联网的数据。我尝试使用 firebaseRecycler 适配器、自定义适配器甚至 listView 来代替 recyclerView。 这是我的片段的代码。请帮帮我。

public class FragmentTips extends Fragment {
    public RecyclerView recyclerListView;
    public MyRecyclerAdapter myAdapter;
    DatabaseReference databaseReference;
    TextView loading;
    View v;
    SwipeRefreshLayout refresher;
    List<Model> listPosts = new ArrayList<>();

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.activity_home, container, false);

        databaseReference = FirebaseDatabase.getInstance().getReference();
        creatingLayouts();

        final NativeExpressAdView adView = (NativeExpressAdView) v.findViewById(R.id.adView);
        adView.loadAd(new AdRequest.Builder().build());
        adView.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                adView.setVisibility(View.VISIBLE);
            }
        });

        return v;
    }

    public void creatingLayouts() {

        refresher = (SwipeRefreshLayout) v.findViewById(R.id.refresher);
        //refresher.setRefreshing(true);
        refresher.setColorSchemeResources(R.color.blue, R.color.lightBlue, R.color.deepPurple, R.color.purple, R.color.pink, R.color.orange, R.color.red);
        refresher.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                if (myAdapter != null) {
                    updateAdapter();

                }
            }
        });
        loading = (TextView) v.findViewById(R.id.loading);

        recyclerListView = (RecyclerView) v.findViewById(R.id.recycler);
        recyclerListView.setHasFixedSize(false);
        recyclerListView.setLayoutManager(new LinearLayoutManager(getActivity()));

        myAdapter = new MyRecyclerAdapter(getContext());
        updateAdapter();
        recyclerListView.setAdapter(myAdapter);

    }


    //update adapter
    public void updateAdapter() {


        listPosts.clear();
        databaseReference.child("winbet").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                listPosts.add(dataSnapshot.getValue(Model.class));
                displayPosts(listPosts);
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getContext(), "Canceled", Toast.LENGTH_SHORT).show();
            }
        });


    }


    public void displayPosts(List<Model> ls) {
        refresher.setRefreshing(false);
        loading.setVisibility(View.GONE);
        recyclerListView.setVisibility(View.VISIBLE);
        myAdapter.setData(ls);
        myAdapter.notifyDataSetChanged();
    }


}

【问题讨论】:

  • 使用这个库更适合同时使用 firebase 和 RecyclerView...github.com/firebase/FirebaseUI-Android
  • Anas Mehar,感谢您的回复,但我尝试使用 FirebaseRecyclerAdapter 作为 FirebaseUI 库的一个组件,但它只是同样的问题。
  • 我想首先你检查一下 firebase 示例应用程序,其中包含了 firebasearrayadapter 的所有用法。不幸的是,在我的情况下,firebase 示例链接没有响应,请查看 firebase 数据库示例..

标签: android android-fragments firebase firebase-realtime-database android-recyclerview


【解决方案1】:

谢谢你们。我终于找到了解决方案。它与代码无关。如果有人遇到过这样的问题。问题是我使用的是免费的 firebase 计划,并且允许的连接数只有 100,所以它达到了顶峰,因为我有很多用户。解决办法是升级

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2023-03-27
    • 2014-11-06
    相关资源
    最近更新 更多