я не могу найти причину, почему стиль прогресса бара показан в неопределенном ProgressDialog отличается между Android 22 и 23.Android неопределенного прогресса бара стиль диалога прогресса
Давайте очень простой макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="example.com.progressbarcolor.MainActivity">
<Button
android:id="@+id/show_progress"
android:text="Show progres"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
<ProgressBar
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:indeterminate="true"
android:visibility="visible"/>
</RelativeLayout>
Нажатие кнопки отображает ProgressDialog:
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
стиль приложения является:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
И наконец Gradle файла:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "example.com.progressbarcolor"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
}
Как вы можете видеть на изображениях ниже оба приложения показывают тот же самый прогресс бар при использовании непосредственно внутри макета, но цвета отличаются внутри ProgressDialog.
На Android 22 в диалоговом окне прогресса отображается зеленый индикатор выполнения, а не красный.
Nexus 5, API 22
Nexus 5X, API 23
AFAIK библиотека appcompat никогда не изменяет стиль ProgressBar ProgressDialog ... вы должны создать свой собственный диалог ... – Selvin
У вас есть разные темы в разных стилях.xml ?? –
Существует только одна тема для всех версий. – aguyngueran