Android FirebaseRecyclerAdapter未在片段中显示数据

Android FirebaseRecyclerAdapter未在片段中显示数据,android,android-fragments,firebase,firebase-realtime-database,firebaseui,Android,Android Fragments,Firebase,Firebase Realtime Database,Firebaseui,我有一个片段,试图使用FirebaseRecyclerAdapter显示ListView,它位于编译'com.firebaseui:firebaseui:0.4.2' 我的片段代码如下所示: public class HomeFragment extends Fragment { private RecyclerView services_list; private DatabaseReference mDatabase; public HomeFragment()

我有一个片段,试图使用FirebaseRecyclerAdapter显示ListView,它位于
编译'com.firebaseui:firebaseui:0.4.2'

我的片段代码如下所示:

public class HomeFragment extends Fragment {

    private RecyclerView services_list;
    private DatabaseReference mDatabase;


    public HomeFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_home, container, false);
        // Inflate the layout for this fragment
        return view;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mDatabase = FirebaseDatabase.getInstance().getReference().child("AllServices");
        mDatabase.keepSynced(true);

        services_list = (RecyclerView) view.findViewById(R.id.services_list);
        services_list.setHasFixedSize(true);
        services_list.setLayoutManager(new LinearLayoutManager(getContext()));


    }

    @Override
    public void onStart() {
        super.onStart();

        FirebaseRecyclerAdapter<Services, ServiceViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Services, ServiceViewHolder>(
                Services.class,
                R.layout.service_row,
                ServiceViewHolder.class,
                mDatabase
        ) {
            @Override
            protected void populateViewHolder(ServiceViewHolder viewHolder, Services model, final int position) {

                viewHolder.setServiceName(model.getName());
                viewHolder.setServicePrice(model.getPrice());
                viewHolder.setImage(getContext(), model.getImageUrl());

                viewHolder.service_name_textview.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getContext(), "Clicked on Service Name "+(position+1), Toast.LENGTH_SHORT).show();
                    }
                });

                viewHolder.service_price_text_view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getContext(), "Clicked on Service Price "+(position+1), Toast.LENGTH_SHORT).show();
                    }
                });

                viewHolder.service_image.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getContext(), "Clicked on Service Image "+(position+1), Toast.LENGTH_SHORT).show();
                    }
                });

            }
        };

        services_list.setAdapter(firebaseRecyclerAdapter);


    }

    public static class ServiceViewHolder extends RecyclerView.ViewHolder
    {

        View mView;
        TextView service_name_textview;
        TextView service_price_text_view;
        ImageView service_image;

        public ServiceViewHolder(View itemView) {
            super(itemView);

            mView = itemView;
        }

        public void setServiceName(String title)
        {
            service_name_textview = (TextView) mView.findViewById(R.id.service_name_textview);
            service_name_textview.setText(title);
        }

        public void setServicePrice(String desc)
        {
            service_price_text_view = (TextView) mView.findViewById(R.id.service_price_text_view);
            service_price_text_view.setText(desc);
        }

        public void setImage(final Context ctx, final String image)
        {
            service_image = (ImageView) mView.findViewById(R.id.service_image);

            //Picasso.with(ctx).load(image).into(post_image);

            Picasso.with(ctx).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(service_image, new Callback() {
                @Override
                public void onSuccess() {

                }

                @Override
                public void onError() {
                    Picasso.with(ctx).load(image).into(service_image);
                }
            });
        }


    }
}
public class Services {

    private String Name;
    private String ImageUrl;
    private String Price;

    public Services() {
    }

    public Services(String name, String imageUrl, String price) {
        Name = name;
        ImageUrl = imageUrl;
        Price = price;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getImageUrl() {
        return ImageUrl;
    }

    public void setImageUrl(String imageUrl) {
        ImageUrl = imageUrl;
    }

    public String getPrice() {
        return Price;
    }

    public void setPrice(String price) {
        Price = price;
    }
}
在RecyclerView中显示21行

注意:当我第一次安装应用程序时,数据被加载到recyclerview中(在logcat中有图像链接,图像是从那里下载的),但此后数据从未加载到应用程序中


我真的很努力地想把它分类,但似乎没有任何帮助。

同样的问题也发生在我身上。只需删除
服务列表即可。setHasFixedSize(true)

我也遇到了同样的问题。只需删除
服务列表即可。setHasFixedSize(true)

有时在调整
回收视图的大小时会出现问题
我也有同样的问题,我用设置修复了它

android:layout_width="match_parent"
android:layout_height="match_parent"

只需将
高度
宽度
设置为
匹配父项
有时在调整
回收视图的大小时会出现问题
我也有同样的问题,我用设置修复了它

android:layout_width="match_parent"
android:layout_height="match_parent"
只需将
高度
宽度
设置为
匹配父项