【问题标题】:Theme on ProgressDialog make it fullscreenProgressDialog 上的主题使其全屏显示
【发布时间】:2013-08-02 13:08:22
【问题描述】:

这里是新秀安卓开发者。我在 AsyncTask 中遇到了一些 ProgressDialog 的问题。

我想在创建 ProgressDialog 时应用一个主题,但是当我应用它时,对话框只是全屏显示并且我的活动被隐藏了。当我在实例化时删除主题,这是正常的。

我只是想知道为什么。

这是我的 AsyncTask 课程:

公共类同步{

private static AppManager       app = AppManager.getInstance();

public void Synchronise() {
}

AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean>() {

    private ProgressDialog  pd;

    @Override
    protected void onPreExecute() {;
        pd = new ProgressDialog(app.m_AppContext, android.R.style.Theme_Black);
        pd.setTitle("Veulliez patienter");
        pd.setMessage("Synchronisation en cours...");
        pd.setCancelable(false);
        pd.setIndeterminate(true);
        pd.show();
    }

    @Override
    protected Boolean doInBackground(Void... arg0) {
        try {
            //Synchronisation
            Thread.sleep(2000);
            Log.d("DEBUG","sync en cours");
        } catch (InterruptedException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        pd.dismiss();
        if (result)
            Toast.makeText(app.m_AppContext, "Synchronisation terminé avec succès", Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(app.m_AppContext, "La synchronisation a échoué", Toast.LENGTH_SHORT).show();
        Log.d("DEBUG","SYNC DONE");
    }
};

public void startSync() {
    if (app.m_bIsOnline)
        task.execute((Void[])null);
    else
        Toast.makeText(app.m_AppContext, "Mode offline. Synchronisation impossible", Toast.LENGTH_SHORT).show();            
}

}

感谢您的帮助。

【问题讨论】:

  • 尝试设置不同的主题。 android.R.style.Theme_Blackvariant on Theme that ensures the background is completely black.
  • 我尝试了很多主题,例如android.R.style.Widget_Holo_Light_ProgressBar_Small。它不起作用:(
  • 试试pd = new ProgressDialog(this, R.style.Theme_Black);
  • 我无法使用this,因为我的 AsyncTask 不在 Activity 中。我用全班同学更新了我的问题。并且 R.style.Them_Black 也没有定义。

标签: android themes fullscreen progressdialog


【解决方案1】:

您需要将样式父级更改为对话框。例如:

<style name="AppTheme.Light" parent="Theme.AppCompat.Dialog" >
        <item name="colorAccent">@color/theme_color</item>
        <item name ="android:background">@color/theme_background_light</item>
        <item name = "android:textColor">@color/black</item>
</style>

【讨论】:

  • 这与上面的棒棒糖广告一起使用!但是有两个 ProgressDialog 出现在 KitKat 设备上 :( !
猜你喜欢
  • 2011-09-19
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
相关资源
最近更新 更多