Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android firebase的RecyclerView有时会保持空白,但有时会显示项目_Android_Android Fragments_Firebase_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Android firebase的RecyclerView有时会保持空白,但有时会显示项目

Android firebase的RecyclerView有时会保持空白,但有时会显示项目,android,android-fragments,firebase,firebase-realtime-database,android-recyclerview,Android,Android Fragments,Firebase,Firebase Realtime Database,Android Recyclerview,这个问题在这里有答案,但对我来说不起作用。我不明白为什么有时候recyclerView会显示项目,但有时候它不会显示。我在viewPager中使用了四个框架。这不是互联网问题,因为其他片段显示来自互联网的数据。我曾尝试使用firebaseRecycler适配器、自定义适配器甚至listView来代替recyclerView。 这是我的密码。请帮帮我 public class FragmentTips extends Fragment { public RecyclerView recyc

这个问题在这里有答案,但对我来说不起作用。我不明白为什么有时候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();
    }


}
公共类碎片提示扩展碎片{
公共回收站查看回收站列表视图;
公共MyRecyclerAdapter myAdapter;
数据库参考数据库参考;
文本视图加载;
观点五;
SwipeRefreshLayout复习课程;
List listPosts=new ArrayList();
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
v=充气机。充气(R.layout.activity\u home,container,false);
databaseReference=FirebaseDatabase.getInstance().getReference();
创建布局();
最终NativeExpressAdView adView=(NativeExpressAdView)v.findViewById(R.id.adView);
adView.loadAd(新的addRequest.Builder().build());
adView.setAdListener(新的AdListener(){
@凌驾
已加载的公共无效(){
adView.setVisibility(View.VISIBLE);
}
});
返回v;
}
公共void creatingLayouts(){
refresher=(SwipeRefreshLayout)v.findViewById(R.id.refresher);
//刷新器。设置刷新(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(新的SwipeRefreshLayout.OnRefreshListener(){
@凌驾
公共void onRefresh(){
if(myAdapter!=null){
updateAdapter();
}
}
});
加载=(TextView)v.findViewById(R.id.loading);
recyclerListView=(RecyclerView)v.findViewById(R.id.recycler);
recyclerListView.setHasFixedSize(false);
setLayoutManager(新的LinearLayoutManager(getActivity());
myAdapter=新的MyRecyclerAdapter(getContext());
updateAdapter();
recyclerListView.setAdapter(myAdapter);
}
//更新适配器
public void updatedapter(){
listPosts.clear();
databaseReference.child(“winbet”).addChildEventListener(新的ChildEventListener()){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
add(dataSnapshot.getValue(Model.class));
显示帖子(列表帖子);
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
Toast.makeText(getContext(),“cancelled”,Toast.LENGTH_SHORT.show();
}
});
}
公共空白显示柱(列表ls){
刷新器。设置刷新(false);
loading.setVisibility(View.GONE);
recyclerListView.setVisibility(View.VISIBLE);
myAdapter.setData(ls);
myAdapter.notifyDataSetChanged();
}
}

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

使用此库比同时使用firebase和RecyclerView更好。。。Anas Mehar,感谢您的回复,但我尝试使用FirebaseRecyclerAdapter作为FirebaseUI库的一个组件,但这是同一个问题。我想首先您应该检查firebase示例应用程序,其中包括firebasearrayadapter的所有用法。不幸的是,在我的情况下,firebase示例链接没有响应,请查看firebase数据库示例。。