我已在我的活动中以编程方式创建了ProgressBar
。我该如何展示?
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
答案 0 :(得分:8)
您可以尝试使用此代码将progBar编程添加到您的布局中。
RelativeLayout layout = new RelativeLayout(this);
ProgressBar progressBar = new ProgressBar(YourActivity.this,null,android.R.attr.progressBarStyleLarge);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar,params);
setContentView(layout);
答案 1 :(得分:1)
你可以在布局中使用:
<RelativeLayout
android:id="@+id/rlLoading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ad000000"
android:visibility="gone">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="@dimen/toolbar_height_70dp"
android:layout_height="@dimen/toolbar_height_70dp"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
app:lottie_autoPlay="true"
app:lottie_fileName="lottie/circle-l.json"
app:lottie_loop="true"
/>
</RelativeLayout>
并在java类中:
rlLoading.setVisibility(View.VISIBLE);
Utility.disableEnableControls(false,rlRoot);
public static void disableEnableControls(boolean enable, ViewGroup vg) {
for (int i = 0; i < vg.getChildCount(); i++) {
View child = vg.getChildAt(i);
child.setEnabled(enable);
if (child instanceof ViewGroup) {
disableEnableControls(enable, (ViewGroup) child);
}
}
}
答案 2 :(得分:0)
progressBar
是一个小部件(视图)。您需要添加到viewgroup。
您可以使用ProgressDialog显示进度加载 示例:
ProgressDialog proDialog = ProgressDialog.show(this, "title", "message");
答案 3 :(得分:0)
每个活动都有一个内容视图。这是您通过调用setContentView()
设置的活动的根视图。屏幕上的每个视图都必须是此视图的子视图(或孩子的孩子等)。例外情况是对话框,它出现在一个单独的窗口中,但这是另一个讨论。
如果您希望视图显示在屏幕上,则必须将其添加到内容视图内的某些ViewGroup
。
实际上,使用进度条进行加载的正常方式是不同的。通常,您在xml中添加一个,但是将其可见性设置为GONE
,因此它不会出现。然后,当您希望它显示时,将其设置为VISIBLE
。所以它看起来像进度条,但它一直隐藏在那里。
答案 4 :(得分:0)
你可以在xml文件中添加progressBar,就像这样
<ProgressBar
android:id="@+id/pbProgress"
android:style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ProgressBar>
并且可见,实用地隐形。
这是在xml文件中添加进度条的方法 但是如果要实际添加,可以使用progressBar.setVisibility(View.Visible)显示进度条,也可以使用progressBar.setVisibility(View.Gone)隐藏活动的进度条。
答案 5 :(得分:0)
ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);
linear1是LinearLayout,MainActivity是您的活动。 根据您的需要更改linear1和MainActivity。
答案 6 :(得分:0)
首先,您需要导入软件包
import android.app.ProgressDialog;
然后使用它
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("MESSAGE");
progressDialog.show();
........
//tour task
........
progressDialog.dismiss(); //dismiss progress bar
答案 7 :(得分:0)
我的方法是将其包装在AlertDialog中,调用对话框并在需要时使用show(),hide()和一些相关函数。因此,您不需要在主XML布局文件中设置ProgressBar,并且可以在不通过编程方式设置布局参数的情况下调用它。
在布局文件layout_pb.xml
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ProgressBar
android:id="@+id/mProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ProgressBar>
<!--add other customize layout components you want-->
</LinearLayout>
使用Java代码
AlertDialog progressDialog = new AlertDialog.Builder(this)
.setView(R.layout.layout_pb)
.setPositiveButton("CANCEL", cancel listener ...)
...
.show();