Android 以编程方式创建和显示ProgressBar
我在活动中以编程方式创建了一个Android 以编程方式创建和显示ProgressBar,android,android-layout,android-activity,android-progressbar,Android,Android Layout,Android Activity,Android Progressbar,我在活动中以编程方式创建了一个ProgressBar。我怎样才能让它表现出来 progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall); progressBar是一个小部件(视图)。您需要添加到视图组 您可以使用ProgressDialog显示加载进度 例如: ProgressDialog proDialog = ProgressDialog.show(this, "title", "
ProgressBar
。我怎样才能让它表现出来
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
progressBar
是一个小部件(视图)。您需要添加到视图组
您可以使用ProgressDialog显示加载进度
例如:
ProgressDialog proDialog = ProgressDialog.show(this, "title", "message");
每个活动都有一个内容视图。这是通过调用
setContentView()
设置的活动的根视图。屏幕上的每个视图都必须是该视图的子视图(或子视图的子视图,等等)。对话框是一个例外,它出现在一个单独的窗口中,但这是另一个讨论
如果希望视图显示在屏幕上,则必须将其添加到内容视图内部的某些ViewGroup
实际上,使用进度条加载的正常方式是不同的。通常,您会在xml中添加一个,但您会将其可见性设置为“已消失”,这样它就不会出现。然后,当您希望它出现时,将其设置为可见。因此,进度条看起来像是出现了,但实际上一直隐藏在那里。您可以尝试使用此代码以编程方式将进度条添加到布局中
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);
您可以像这样在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)来隐藏活动的进度条
ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);
linear1是一个LinearLayout,MainActivity是您的活动。
根据需要更改linear1和MainActivity。您可以在布局中使用:
<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>
首先你需要导入包
import android.app.ProgressDialog;
那么用这个,
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("MESSAGE");
progressDialog.show();
........
//tour task
........
progressDialog.dismiss(); //dismiss progress bar
我的方法是将其包装在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>
谢谢你的回复。但我没有使用ProgressDialog。我希望progressBar在活动中显示为不确定。谢谢。我知道这是一个老问题,但他确实是以编程方式问的,你的答案讨论了如何通过XML手动添加它,而你甚至没有包括如何以编程方式使它可见和不可见。请编辑您的回答这不是一个理想的解决方案,因为您正在使用RecyclerView中的视图。API级别26
ProgressDialog
已被弃用。那么如何设置进度条程序中的消息如何将进度条从视图中分离?@SazzadHissainKhan您需要使用setTag()或setId()对其进行引用然后使用它删除视图或将其可见性设置为Goe Afterward问题询问progressbar而不是ProgressDialog问题是关于仅以编程方式使用progressbar
<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>
AlertDialog progressDialog = new AlertDialog.Builder(this)
.setView(R.layout.layout_pb)
.setPositiveButton("CANCEL", cancel listener ...)
...
.show();