Создать и показать ProgressBar программно

Я создал ProgressBar программно, как показано ниже в моей работе. Как мне показать это?

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);

Ответ 1

Вы можете попробовать этот код для добавления progressBar programaticlly к вашему расположению.

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);

Ответ 2

Вы можете использовать в макете:

<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);
        }
    }
}

Ответ 3

progressBar - виджет (вид). Вам нужно добавить в группу просмотра.

Вы можете использовать ProgressDialog для отображения загрузки процесса Пример:

ProgressDialog proDialog = ProgressDialog.show(this, "title", "message");

Ответ 4

Каждое действие имеет вид содержимого. Это корневой вид вашей активности, который вы установили, вызвав setContentView(). Каждое представление на экране должно быть дочерним элементом этого представления (или дочерним элементом дочернего элемента и т.д.). Исключением является диалог, который появляется в отдельном окне, но это другое обсуждение.

Если вы хотите, чтобы представление отображалось на экране, вы должны добавить его к некоторому ViewGroup внутри вашего содержимого.

На самом деле обычный способ использования индикаторов выполнения загрузки отличается. Обычно вы добавляете его в свой xml, но вы устанавливаете его видимость на GONE, чтобы он не отображался. Затем, когда вы хотите, чтобы он появился, вы установите его на VISIBLE. Таким образом, похоже, что индикатор выполнения появляется, но его действительно там все время скрыто.

Ответ 5

вы можете добавить progressBar в xml файл, подобный этому

<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), чтобы скрыть индикатор выполнения активности.

Ответ 6

ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);

linear1 - это LinearLayout, а MainActivity - это ваша деятельность. Измените linear1 и MainActivity в соответствии с вашими потребностями.

Ответ 7

Мой способ заключается в том, чтобы обернуть его внутри AlertDialog, вызвать диалог и использовать show(), hide() и некоторые связанные функции, когда вам это нужно. Поэтому вам не нужно устанавливать ProgressBar в основном файле макета XML, и вы можете вызывать его без программной настройки параметров макета.

В файле макета 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();

Ответ 8

Сначала вам нужно импортировать пакет

import android.app.ProgressDialog;

затем используйте это,

    ProgressDialog progressDialog;

    progressDialog = new ProgressDialog(this);

    progressDialog.setMessage("MESSAGE");
    progressDialog.show();
    ........
    //tour task
    ........
    progressDialog.dismiss(); //dismiss progress bar