J'ai créé une ProgressBar
par programme comme ci-dessous dans mon activité. Comment puis-je le montrer?
progressBar = new ProgressBar(activity, null, Android.R.attr.progressBarStyleSmall);
Vous pouvez essayer ce code pour ajouter la barre de progression par programme à votre mise en page.
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);
vous pouvez utiliser dans la mise en page:
<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>
et en classe 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);
}
}
}
progressBar
est un widget (vue). Vous devez ajouter à viewgroup.
Vous pouvez utiliser ProgressDialog pour afficher le chargement en cours Exemple:
ProgressDialog proDialog = ProgressDialog.show(this, "title", "message");
Chaque activité a une vue de contenu. Ceci est la vue racine de votre activité que vous avez définie en appelant setContentView()
. Chaque vue à l'écran doit être un enfant de cette vue (ou un enfant d'un enfant, etc.). Les dialogues, qui apparaissent dans une fenêtre séparée, constituent une exception, mais c'est une autre discussion.
Si vous souhaitez que la vue apparaisse à l'écran, vous devez l'ajouter à ViewGroup
dans votre vue de contenu.
En réalité, la façon dont vous utilisez les barres de progression pour le chargement est différente. Normalement, vous en ajoutez un à votre fichier xml, mais vous définissez sa visibilité sur GONE
pour qu’elle n’apparaisse pas. Ensuite, lorsque vous souhaitez qu'il apparaisse, définissez-le sur VISIBLE
. On dirait que la barre de progression apparaît, mais qu’elle est restée cachée tout au long.
ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);
linear1 est un LinearLayout et MainActivity est votre activité . Changez linear1 et MainActivity en fonction de vos besoins.
D'abord, vous devez importer le paquet
import Android.app.ProgressDialog;
alors utilisez ceci,
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("MESSAGE");
progressDialog.show();
........
//tour task
........
progressDialog.dismiss(); //dismiss progress bar
vous pouvez ajouter progressBar dans un fichier XML comme celui-ci
<ProgressBar
Android:id="@+id/pbProgress"
Android:style="@style/Spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
</ProgressBar>
et visible, invisible de manière pragmatique.
C’est le moyen d’ajouter une barre de progression à votre fichier xml, mais si vous souhaitez l’ajouter de façon pragmatique, vous pouvez utiliser progressBar.setVisibility (View.Visible) pour afficher la barre de progression ou vous pouvez utiliser progressBar.setVisibility (View.Gone) pour masquer barre de progression sur l'activité.