【问题标题】:How to set theme for indeterministic ProgressBar in ProgressDialog in Android如何在Android的ProgressDialog中为不确定的ProgressBar设置主题
【发布时间】:2010-11-12 23:08:31
【问题描述】:

我有一个定义了以下主题的 Android(在 A2.2 上开发)应用程序:

<style name="ProgressBar"> parent="@android:style/Widget.ProgressBar">
    <item name="android:indeterminateDrawable">@drawable/progress_medium</item>
</style>
<style name="AlertDialog" parent="@android:style/AlertDialog">
    <item name="android:fullDark">@drawable/bgr_alert</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Light.NoTitleBar">
    <item name="android:alertDialogStyle">@style/AlertDialog</item>
    <item name="android:progressBarStyle">@style/ProgressBar</item>
</style>

“progress_medium”drawable 是我的自定义(蓝色)进度条,“bgr_alert”是自定义(白色)背景。

当我显示对话框时(应用程序的主题是“MyTheme”)

@Override
protected Dialog onCreateDialog(int id) {
  progressDialog = new ProgressDialog(this);
  progressDialog.setCancelable(false);
  progressDialog.setIndeterminate(true);
  return progressDialog;
}

显示的对话框包含自定义背景(白色),但不确定的进度条不可见。

另一方面,如果我手动设置进度可绘制:

progressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progress_medium));

一切都很完美 - 自定义背景和自定义进度可绘制。

任何提示,为什么主题主题没有隐式设置progressBar drawable?

【问题讨论】:

    标签: android themes progress-bar progressdialog customdialog


    【解决方案1】:

    好的,我知道了。问题是 Android 的 progress_dialog.xml 布局包含 ProgressBar 的显式样式:

    <ProgressBar android:id="@android:id/progress"
        style="@android:style/Widget.ProgressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="10000"
        android:layout_marginRight="12dip" />
    

    所以我必须进行手动设置(如上所述)或完全自定义对话框。

    【讨论】:

    • 将您的答案标记为正确!谢谢你救了我一些时间寻找为什么会这样。
    【解决方案2】:

    我遇到了这个问题,真的很难找到解决方案。

    我认为您正在使用 MyTheme android:background:

    的定义
    <style name="MyTheme">
       <item name="android:background">@color/white_color</item>
       .....
       <item name=".....">value</item>
    </style>
    

    我也犯了同样的错误,我们应该使用 android:windowBackground 并给它一个颜色或一个drawable。这样对话框就不会受到主题背景的影响。

    让我知道此解决方案是否适合您!

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      相关资源
      最近更新 更多