web-dev-qa-db-ja.com

プログラムでProgressBarを作成して表示する

私のアクティビティでは、次のようにプログラムでProgressBarを作成しました。表示するにはどうすればよいですか?

progressBar = new ProgressBar(activity, null, Android.R.attr.progressBarStyleSmall);
12
user6304758

このコードを試して、プログレスバーをプログラムでレイアウトに追加できます。

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

レイアウトで使用できます:

_<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 class:

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);
        }
    }
}
_
1
mahsa_azizy

すべてのアクティビティにはコンテンツビューがあります。これは、setContentView()を呼び出して設定したアクティビティのルートビューです。画面上のすべてのビューは、このビューの子(または子の子など)でなければなりません。これの例外はダイアログです。ダイアログは別のウィンドウに表示されますが、それは別の議論です。

ビューを画面に表示する場合は、コンテンツビュー内のいくつかのViewGroupに追加する必要があります。

実際、ロードの進行状況バーを使用する通常の方法は異なります。通常はxmlに追加しますが、可視性をGONEに設定して表示されないようにします。次に、表示したいときにVISIBLEに設定します。そのため、プログレスバーが表示されているように見えますが、実際にはずっと隠れていました。

0
Gabe Sechan

私の方法は、それを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>

In Java code

AlertDialog progressDialog = new AlertDialog.Builder(this)
                                 .setView(R.layout.layout_pb)
                                 .setPositiveButton("CANCEL", cancel listener ...)
                                 ...
                                 .show();
0
gevge
ProgressBar prog = new ProgressBar(MainActivity.this);
linear1.addView(prog);

linear1はLinearLayoutで、MainActivityはアクティビティです。必要に応じてlinear1とMainActivityを変更します。

最初にパッケージをインポートする必要があります

import Android.app.ProgressDialog;

これを使用して、

    ProgressDialog progressDialog;

    progressDialog = new ProgressDialog(this);

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

次のように、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)を使用してプログレスバーを非表示にすることができますアクティビティ。

0
ss_android

progressBarはウィジェット(ビュー)です。ビューグループに追加する必要があります。

ProgressDialogを使用して、ロードの進行状況を表示できます。例:

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