onBindViewHolder
адаптера FirebaseUI вызывается для каждого элемента, который должен отображаться в представлении. Если нет данных, соответствующих ссылке / запросу, которые вы показываете в представлении, то onBindViewHolder
вашего адаптера никогда не будет вызываться.
Так что если вы используете onBindViewHolder
, чтобы скрыть progressDialog
, то progressDialog
будет скрыто, только если предметов. Если элементов нет, onBindViewHolder
не будет вызываться, а progressDialog
останется видимым.
Чтобы скрыть progressDialog
независимо от наличия элементов, вы захотите переопределить onDataChanged
метод адаптера FirebaseUI и скрытие его там:
adapter = new FirebaseRecyclerAdapter < modelClass, MyVIewHolder > ( options ) {
@Override
public void onDataChanged() {
progressDialog.hide();
}
@Override
protected void onBindViewHolder(@NonNull final MyVIewHolder holder , final int position , @NonNull modelClass model) {
...
Поскольку onDataChanged
вызывается каждый раз, когда обновление полностью получено от Firebase, оно будет вызываться при наличии это данные, а когда нет .
См. также: