【问题标题】:Fragment isn't displaying RecyclerView [duplicate]片段不显示 RecyclerView [重复]
【发布时间】:2019-05-13 19:29:10
【问题描述】:

所以,我看了一些关于如何做 RecyclerView 的教程,主要是this。我调整了代码以满足我的需要。但是当我尝试运行它时,RecyclerView 没有显示在片段上。我的猜测是问题出在适配器和查看器部分,因为我还不确定如何实现它。谁能帮帮我?

Fragment.java

public class JobListFragment extends Fragment {

RecyclerView mRecyclerView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;

public JobListFragment(){

}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    ((MainHomeActivity)getActivity()).setActionBarTitle("Job List");

    View view = inflater.inflate(R.layout.fragment_job_list, container, false);

    firebaseDatabase = FirebaseDatabase.getInstance();
    databaseReference = firebaseDatabase.getReference().child("Data");

    mRecyclerView = view.findViewById(R.id.recycleView);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    mRecyclerView.setHasFixedSize(true);

    return view;
}

@Override
public void onStart() {
    super.onStart();
    FirebaseRecyclerOptions<Model> options =
            new FirebaseRecyclerOptions.Builder<Model>()
            .setQuery(databaseReference, Model.class).build();

    FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(options) {
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext())
                    .inflate(R.layout.row, viewGroup, false);

            return new ViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Model model) {
            holder.setDetails(model.getTitlept(), model.getDescpt(), model.getImagept());
        }
    };
    mRecyclerView.setAdapter(adapter);
}
}

ViewHolder.java

public class ViewHolder extends RecyclerView.ViewHolder {

View mView;

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

    mView = itemView;
}

public void setDetails(String title, String description, String image){
    TextView mTitleTv = mView.findViewById(R.id.rTitleTv);
    TextView mDescTv = mView.findViewById(R.id.rDescIv);
    ImageView mImageIv = mView.findViewById(R.id.rImageIv);

    mTitleTv.setText(title);
    mDescTv.setText(description);
    Picasso.get().load(image).into(mImageIv);
}
}

Model.java

public class Model {

String titlept, imagept, descpt;

public Model(){}

public String getTitlept() {
    return titlept;
}

public void setTitlept(String titlept) {
    this.titlept = titlept;
}

public String getImagept() {
    return imagept;
}

public void setImagept(String imagept) {
    this.imagept = imagept;
}

public String getDescpt() {
    return descpt;
}

public void setDescpt(String descpt) {
    this.descpt = descpt;
}
}

【问题讨论】:

  • 在这里看到了一篇文章link。看来您可能缺少第 13 步。adapter.startListening();adapter.stopListening();

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


【解决方案1】:

你能把问题写得更清楚一点吗?图片不显示? @AdhityoPutro

【讨论】:

  • RecyclerView 不显示,就像片段中没有 RecyclerView
猜你喜欢
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多