Некоторые стили ProgressBar не показаны на Nexus 5 Android 5.0.1
У меня есть следующий макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
style="@android:style/Widget.Material.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
У меня работает Nexus 5 Android 5.0.1
, который не отображает ProgressBar
, очевидно, из-за стиля. Когда я устанавливаю стиль, например,
style="@android:style/Widget.ProgressBar.Large"
или
style="@android:style/Widget.Holo.ProgressBar.Large"
показано. У меня есть идентичный Nexus 5, также работающий Android 5.0.1
, который отображает все ProgressBar
fine.
Включение опции "границы макета чертежа" в параметрах разработчиков, это показывает, что ProgressBar
включен в макет, он просто не отображается.
Это кажется очень странным, любая идея о том, что здесь может произойти?
![enter image description here]()
Ответы
Ответ 1
У меня была одна и та же проблема, но это было потому, что у телефона разработчика есть анимационные шкалы до 0 (все 3).
Включите все анимации на устройстве и, возможно, вы сможете увидеть индикатор выполнения, поэтому для нормальных людей, у которых есть анимация, индикатор выполнения будет выглядеть нормально.
Ответ 2
В моем случае похоже, что проблема связана со сборкой LRX22G:
Nexus 7 using Build LRX22G (android-5.0.2_r1) - progress bar not shown
Nexus 5 using Build LRX22C (android-5.0.1_r1) - progress bar shown
См. https://source.android.com/source/build-numbers.html
Вероятно, это также связано с https://code.google.com/p/android/issues/detail?id=77865
Не имея возможности дождаться исправления, я решил сделать так, чтобы индикатор хода Holo использовался в моей теме Material. Так оно и было достигнуто - это может быть вам полезно в то же время:
<style name="AppBaseTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<!-- Build LRX22G (5.0.2 Nexus 7) fails to display progress bar so we'll use Holo instead of Material -->
<!-- http://stackoverflow.com/questions/27567235/certain-progressbar-styles-not-shown-on-nexus-5-android-5-0-1 -->
<item name="android:progressBarStyleSmall">@style/MaterialProgressBarFix.Small</item>
<item name="android:progressBarStyle">@style/MaterialProgressBarFix</item>
<item name="android:progressBarStyleLarge">@style/MaterialProgressBarFix.Large</item>
</style>
<style name="MaterialProgressBarFix.Small" parent="@android:style/Widget.Holo.ProgressBar.Small" />
<style name="MaterialProgressBarFix" parent="@android:style/Widget.Holo.ProgressBar" />
<style name="MaterialProgressBarFix.Large" parent="@android:style/Widget.Holo.ProgressBar.Large" />
Ответ 3
Установив стиль следующим образом, вы должны уметь отлаживать эту проблему
style="?android:attr/progressBarStyleLarge"