ProgressBar
ボタンを押したときにアプリケーションに表示したい。
問題は、ダイアログ内にスピナーが必要ないため、ProgressDialogを使用したくないことです。スピナーのみを表示したいので、 ProgressBarを表示したいだけです。
私はこれをプログラム的に行いたいと思っています。
ProgressBar
ボタンを押したときにアプリケーションに表示したい。
問題は、ダイアログ内にスピナーが必要ないため、ProgressDialogを使用したくないことです。スピナーのみを表示したいので、 ProgressBarを表示したいだけです。
私はこれをプログラム的に行いたいと思っています。
これをレイアウトに追加します。
<ProgressBar android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible"></ProgressBar>
そして、あなたのJavaコードでは、アクティビティで以下のコードを使用し、要件に従ってそれに応じて変更します
ProgressBar viewProgressBar;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
viewProgressBar = (ProgressBar)findViewById(R.id.progressBar1);
Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
viewProgressBar.setVisibility(View.VISIBLE);
// Your code follows here
}
});
}
非表示にしたい場合は、単に使用します
viewProgressBar.setVisibility(View.INVISIBLE);
これを実現するには、アクティビティ用に2 つの重複するコンテナーを作成する必要があります。1 つのコンテナにはアクティビティのビューが含まれ、デフォルトで表示されます。2 つ目のコンテナには、背景が透明なスピナーが中央に含まれ、デフォルトで表示されなくなります。
このような重なり効果を作成するには、両方のコンテナーを FrameLayout 内に配置する必要があります。
注: ここでのコンテナーとは、LinearLayout、RelativeLayout などの ViewGroups を意味します。
<FrameLayout>
<LinearLayout
android:id="@+id/viewsContainer"
android:visibility="visible">
...
...
</LinearLayout>
<LinearLayout
android:id="@+id/spinnerContainer"
android:visibility="gone"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000">
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
これが役立つことを願っています。お気軽にご相談ください。
必要な場合は、ProgressDialog を使用する代わりに、ProgressBarビューを使用する必要があります。
できることは、ProgressBar が既に配置されている状態でアクティビティ/フラグメントのレイアウトを宣言し、それを非表示 (View.GONE) にすることです。次に、コードでボタンをクリックすると、可視性が可視 (View.VISIBLE) に変わります。
ProgressBar をプログラムで宣言することもできます。これにより、XML レイアウトを使用した場合と同じ効果が得られます。