Android 回收视图卡在片段中不可见
我试图在片段中使用recyclerview查看firebase的数据,但在片段中我看不到任何卡片。我所说的卡片是指我为“回收者”视图所做的布局 这是我的片段类Android 回收视图卡在片段中不可见,android,android-fragments,android-recyclerview,Android,Android Fragments,Android Recyclerview,我试图在片段中使用recyclerview查看firebase的数据,但在片段中我看不到任何卡片。我所说的卡片是指我为“回收者”视图所做的布局 这是我的片段类 @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { feedView=inflater.
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
feedView=inflater.from(container.getContext()).inflate(R.layout.frag_home,container,false);
myFeed = (RecyclerView) feedView.findViewById(R.id.recycle_View);
myFeed.setLayoutManager(new LinearLayoutManager(getContext()));
feedref = FirebaseDatabase.getInstance().getReference().child("Feed");
return feedView;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions option =
new FirebaseRecyclerOptions.Builder<news>()
.setQuery(feedref,news.class)
.build();
FirebaseRecyclerAdapter<news,newsViewHolder> adapter
= new FirebaseRecyclerAdapter<news, newsViewHolder>(option) {
@Override
protected void onBindViewHolder(@NonNull final newsViewHolder newsViewHolder, int i, @NonNull news news) {
feedref.child("News").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild("Desc")){
String headline = dataSnapshot.child("Title").getValue().toString();
String content = dataSnapshot.child("Desc").getValue().toString();
newsViewHolder.title.setText(headline);
newsViewHolder.desc.setText(content);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getActivity(),"Error",Toast.LENGTH_LONG).show();
}
});
}
@NonNull
@Override
public newsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.carview,parent ,false);
newsViewHolder viewHolder = new newsViewHolder(view);
return viewHolder;
}
};
myFeed.setAdapter(adapter);
adapter.startListening();
}
public static class newsViewHolder extends RecyclerView.ViewHolder{
TextView title,desc;
ImageView pic;
public newsViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
desc = itemView.findViewById(R.id.desc);
pic = itemView.findViewById(R.id.pic);
}
}
}
@覆盖
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
feedView=flatter.from(container.getContext()).flatte(R.layout.frag_home,container,false);
myFeed=(RecyclerView)feedView.findviewbyd(R.id.recycle\u视图);
setLayoutManager(新的LinearLayoutManager(getContext());
feedref=FirebaseDatabase.getInstance().getReference().child(“提要”);
返回feedView;
}
@凌驾
public void onStart(){
super.onStart();
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(feedref,news.class)
.build();
FirebaseRecyclerAdapter适配器
=新FirebaseRecyclerAdapter(选件){
@凌驾
受保护的无效onBindViewHolder(@NonNull final newswiewholder newswiewholder,int i,@NonNull news){
feedref.child(“新闻”).addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(dataSnapshot.hasChild(“Desc”)){
字符串headline=dataSnapshot.child(“Title”).getValue().toString();
字符串内容=dataSnapshot.child(“Desc”).getValue().toString();
newsViewHolder.title.setText(标题);
newsViewHolder.desc.setText(内容);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
Toast.makeText(getActivity(),“Error”,Toast.LENGTH_LONG.show();
}
});
}
@非空
@凌驾
public newswiewholder onCreateViewHolder(@NonNull ViewGroup parent,int i){
View-View=LayoutFlater.from(parent.getContext()).flate(R.layout.carview,parent,false);
newsViewHolder-viewHolder=新的newsViewHolder(视图);
返回视图持有者;
}
};
设置适配器(适配器);
adapter.startListening();
}
公共静态类newsViewHolder扩展了RecyclerView.ViewHolder{
文本视图标题,描述;
图像视图;
公共新闻视图持有者(@NonNull View itemView){
超级(项目视图);
title=itemView.findviewbyd(R.id.title);
desc=itemView.findviewbyd(R.id.desc);
pic=itemView.findviewbyd(R.id.pic);
}
}
}
我只看到了空的片段布局。我已经将数据库添加到firebase。代码编译没有任何错误。我不知道出了什么问题。我是一个新手,请帮忙。您没有在OnBindViewHolder中返回ViewHolder类。我不明白。为什么我需要在OnBindViewHolder中返回它。我在newViewHolder中返回ViewHolder类