私は
Progressbar
を表示するためにこのコードを使用しています私の必要に応じて:
public class DelayedProgressDialog extends DialogFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setCancelable(false);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setTitle(null);
dialog.setContentView(R.layout._task);
dialog.setIndeterminate(false);
return dialog;
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="@dimen/_100sdp"
android:layout_height="@dimen/_100sdp"
android:id="@+id/progressBar"
android:layout_centerInParent="true"
android:indeterminateTint="@android:color/white"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
今、問題は、これを呼び出すと、このフラグメントにカスタムプログレスバーが表示されないことです: タイトルなしで左側に通常のプログレスバーを表示し、中央に表示したいです。また、setContentviewを削除しても効果が得られない場合、つまりカスタムビューがこれに表示されないことを意味します。
回答 1 件
基本的なダイアログ、たとえば
Dialog
を使用できます クラスを作成し、レイアウトで設計したコンテンツビューを設定します(これは正しいようです)。 ProgressDialogを使用しているため、ProgressBar
に干渉している可能性があります レイアウトで定義されたウィジェット。方法は次のとおりです。
また、DialogFragmentの代わりにDialogを試すこともできます。