java - 如何添加进度条以在 Firebase RecyclerView 中加载
问题描述
我正在开发一个 Android 应用程序该应用程序使用从 Firebase 获取数据 FirebaseRecyclerAdapter
,我需要在其中实现ProgressBar
一个Recyler View
.
如何在加载数据之前在RecyclerView中添加RrogressBar..以及加载数据后加载屏幕需要Dismiss
代码:
protected void onStart() {
super.onStart();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Vacancy");
FirebaseRecyclerOptions<VacancyModel> options = new FirebaseRecyclerOptions.Builder<VacancyModel>()
.setQuery(reference.orderByChild("companyname"), VacancyModel.class)
.build();
FirebaseRecyclerAdapter<VacancyModel, VacancyViewHolder> adapter =
new FirebaseRecyclerAdapter<VacancyModel, VacancyViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull VacancyViewHolder holder, int position, @NonNull final VacancyModel model) {
jprog.setVisibility(View.VISIBLE);
holder.vacompany_name.setText(model.getCompanyname());
holder.vajob_type.setText("Job Title: " + model.getJob_title());
holder.vatiming.setText(model.getTiming());
holder.vatotal_vacancy.setText("Total Vacancy: " +model.getTotal_vacancy());
holder.vasp.setText(model.getS_p());
holder.vaexpected_vasalary.setText("Expected Salary: " +model.getExpexted_salary());
holder.vaarea.setText("Area: " +model.getPincode());
holder.vaphone_number.setText("Contact Number: " +model.getContact_number());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Home.this, VacancyViewActivity.class);
intent.putExtra("pid", model.getCompanyID());
startActivity(intent);
}
});
}
@NonNull
@Override
public VacancyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.vacancy_list_item, viewGroup, false);
VacancyViewHolder holder = new VacancyViewHolder(view);
return holder;
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
解决方案
因为您正在使用FirebaseRecyclerAdapter
,所以您可以覆盖onDataChanged()
适配器类中的方法。因此,创建一个新对象ProgressBar
并开始在onCreate()
方法中显示它,或者如果需要,可以直接将其添加到 .XML 文件中。最后在您的适配器类中,使用以下代码行:
@Override
public void onDataChanged() {
if (progressBar != null) {
progressBar.setVisibility(View.GONE);
}
}
推荐阅读
- shopify - 从 Shopify 创建订单时点击 webhook 时的正确电子邮件地址
- c++ - 如何在被 OpenMP 中的线程修改后将列表刷新到内存
- sql - 字符串连接+替换
- php - php 像 concat 用用户名获取用户 ID
- python - /usr/lib64/python3.4/http/client.py 的编码问题
- javascript - 带有承诺和闭包范围的延迟加载
- sql - SQL汇总计数组函数
- c++ - 在 C++ 中使用附加模板参数扩展模板结构
- android - 为什么我的 Android 自定义 ArrayAdapter 在使用 2 路数据绑定时不起作用?
- java - 在反向代理后面,Spring Security 登录重定向到错误的端口