ani*_*l.e 13 android android-spinner
我有一个主要活动,它有简单的按钮和与之关联的监听器.每个按钮都会打开一个新活动(意图).但是,在打开活动时,加载会导致UI冻结需要一些时间.我想通过简单地在它们之间添加一个加载圆(微调器)来避免这种情况.我搜索了很多帖子,但仍然找不到任何东西.
加载圈我的意思是这个
Par*_*dha 19
那是一个Progress Bar
.您可以通过编程方式或使用XML中的窗口小部件来创建它.
要在XML中实现:
<ProgressBar
android:id="@+id/progress_loader"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="visible" />
Run Code Online (Sandbox Code Playgroud)
要在Java中实现(使用Progress Dialog
您在评论中提到的,但您也可以使用Progress Bar
):
ProgressDialog nDialog;
nDialog = new ProgressDialog(Login.this);
nDialog.setMessage("Loading..");
nDialog.setTitle("Get Data");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
Run Code Online (Sandbox Code Playgroud)
在进入下一个活动之前,您应该dismiss()
使用进度条.
nDialog.dismiss();
Run Code Online (Sandbox Code Playgroud)
只需在第二个活动中使用以下代码
<ProgressBar
android:id="@+id/progress_loader"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="visible" />
Run Code Online (Sandbox Code Playgroud)
初始化完成后使可见性消失
您无法通过添加加载小部件来避免 UI 冻结。您必须找到阻塞主线程的代码并将其移至工作线程。查看Android 文档中的“线程辅助类”中的“线程处理辅助类” 。如果不显示您现有的代码(以便我们知道什么被阻止),我们无法就此向您提供进一步建议。
其次,如果您想在视图事务之间显示加载小部件,您可以重组您的应用程序以使用fragments。活动可用于在片段之间进行切换,它还可以包含小部件,该小部件可以在更改片段之前变为可见,并在完成后变为不可见。
归档时间: |
|
查看次数: |
23586 次 |
最近记录: |