问题描述
我有一个带有按钮的主活动,按下该按钮会打开第二个活动。第二个 Activity 将大量数据从 Firebase 加载到 RecyclerView,这需要一些时间。当我点击 Main Activity 按钮时,我想打开一个带有进度条的页面(不显示百分比),只有当第二个 Activity 完全加载时,进度条才会关闭并显示第二个 Activity 的内容。做这个的最好方式是什么?任何的想法?谢谢。
解决方法
当你在onCreate方法中切换第二个activitiy时,如果你以编程方式实现进度条,在实例化之后将其设置为infinite并添加到视图层次中。然后当您的数据在后台完成时,只需使用 View.GONE 属性隐藏假设您使用 Java 和垂直线性布局。
ProgressBar progressBar = new ProgressBar(this);
progressBar.setIndeterminate(true);
yourLinearLayout.addView(progressBar);
...
// Once your data has been loaded hide the progress bar
progressBar.setVisibility(View.GONE);
// Or remove it
yourLinearLayout.removeView(progressBar);
,
在xml布局文件中使用ProgressBar
(在需要展示的fragment/activity中),像这样
<RelativeLayout
android:id="@+id/progressLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
并在关联的活动文件中,将可见性设置为 GONE
。
在调用加载数据的方法的地方执行此操作。
progressLayout.visibility = View.GONE
如果您可以将那部分代码添加到您的问题中,那么帮助起来会更容易。