Activity 中心的 ProgressDialog

ProgressDialog at the center of Activity

我试图将我的 ProgressDialog 放在 Activity 的中心。

这是我的 ProgressDialog:

final ProgressDialog pd = new ProgressDialog(ActivityLoginRegistration.this, R.style.ProgressDialogStyle);
    pd.setMessage(getString(R.string.Loading_message_alert));
    pd.setCancelable(false);
    pd.show();

这是我的风格资源:

<style name="ProgressDialogStyle">
    <item name="android:layout_gravity">center</item>
    <item name="colorAccent">#A5865F</item>
</style>

但是pd显示为 this

我试过你用 pd.getWindow().setGravity(Gravity.CENTER); 但它对我不起作用。

如何将 ProgressDialog 置于我的 Activity 中心?

尝试将进度对话框的全部内容更改为居中,进度对话框可能居中,但宽度可能 match parent,因此内容不在中心:

同时添加以下行:

<item name="android:gravity">center</item>

最终样式如下:

<style name="ProgressDialogStyle">
    <item name="android:layout_gravity">center</item>
    <item name="android:gravity">center</item>
    <item name="colorAccent">#A5865F</item>
</style>

我解决了问题。

为了更改进度条颜色,我覆盖了整个条形资源,而不仅仅是它的样式。

progressbar_handler.xml:

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="1080">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadiusRatio="3"
    android:shape="ring"
    android:thicknessRatio="8"
    android:useLevel="false">
    <size
        android:width="48dip"
        android:height="48dip" />
    <gradient
        android:angle="0"
        android:endColor="#A5865F"
        android:startColor="@android:color/transparent"
        android:type="sweep"
        android:useLevel="false" />
</shape>

然后我将它应用到我的 ProgressDialog 中:

    ProgressDialog pd = new ProgressDialog(ActivityLoginRegistration.this);
    pd.setMessage(getString(R.string.Loading_message_alert));
    pd.setCancelable(false);
    pd.show();
    pd.setIndeterminate(true);
    pd.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progressbar_handler));

结果如下:image