如何在FireBaseHandler中实现ProgressBar

时间:2018-05-31 12:48:51

标签: java android firebase firebase-realtime-database

我有问题,Fragment有内容,我想在Firebase加载内容时添加简单的ProgressBar。我怎么能这样做呢? (我尝试添加onDataChange,但它不起作用,代码如下)

public void onDataChange(DataSnapshot dataSnapshot) {
            progressBar.setVisibility(View.VISIBLE);
            mContentLayout.setVisibility(LinearLayout.GONE);

            for (final DataSnapshot snapshot : dataSnapshot.getChildren()) {
                item = snapshot.getValue(Item.class);
                if(item.isSales()) {
                    arrayOfItemProduct.add(item);
                }
            }
            adapter.notifyDataSetChanged();

            progressBar.setVisibility(View.GONE);
            mContentLayout.setVisibility(LinearLayout.VISIBLE);
        }

1 个答案:

答案 0 :(得分:0)

要解决此问题,您可以在片段的.XML布局文件中添加以下代码行:

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progress_bar"
    android:layout_centerInParent="true"
    style="@style/Widget.AppCompat.ProgressBar"/>

这意味着每次启动您的片段时,ProgressBar都会显示。

progressBar变量定义为全局变量,然后在onCreateView()方法中的fragmnet中找到它,如下所示:

progressBar = yourFragmentView.findViewById(R.id.progress_bar);

然后在onDataChange()方法中使用以下代码:

if (progressBar != null) {
    progressBar.setVisibility(View.GONE);
}