【问题标题】:ProgressDialog at the center of ActivityActivity 中心的 ProgressDialog
【发布时间】:2017-11-02 14:42:23
【问题描述】:

我正在尝试将我的 ProgressDialog 放在 Activity 的中心。

这是我的进度对话框:

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 的中心?

【问题讨论】:

    标签: android view progress-bar progressdialog


    【解决方案1】:

    尝试更改进度对话框重力的全部内容以使进度对话框居中,但它的宽度可能是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>
    

    【讨论】:

      【解决方案2】:

      我解决了这个问题。

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

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-12
        • 2017-04-10
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多