【问题标题】:ProgressBar Circle shows no progress on android L (API 21)ProgressBar Circle 在 android L (API 21) 上没有显示任何进展
【发布时间】:2014-12-19 08:59:16
【问题描述】:

我有一个循环进度条来倒计时。它在 kitkat 和之前的版本上完美运行,但在 android L 上,无论我设置什么进度,它总是显示一个完整的圆圈。

Image

layout.xml

<ProgressBar
                android:id="@+id/progressBar1"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:indeterminate="false"
                android:max="200"
                android:progress="100"
                android:progressDrawable="@drawable/progresscircle" />

progresscircle.xml

 <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape
            android:innerRadiusRatio="3.4"
            android:shape="ring"
            android:thicknessRatio="6.0" >
            <solid 
                android:color="#ffffff" />
        </shape>
    </item>
        <item>
            <rotate
                android:drawable="@drawable/progress_particle"
                android:fromDegrees="0"
                android:pivotX="50%"
                android:pivotY="50%"
                android:toDegrees="360" />
        </item>

    </layer-list>

【问题讨论】:

  • 展开为 ARGB 时,您的开始颜色和结束颜色相同。你试过 android:startColor="#00ffffff" 吗?
  • 你说得对,这曾经是两种不同的颜色。现在它应该只是白色的(见更新的问题)。问题还是一样。
  • 预期的行为是什么?可以附上截图吗?从代码来看,它看起来像一个围绕其中心旋转的实心环——在动画中的每个点看起来都是一样的。
  • 我在上面链接了一个截图,因为我不能直接包含它,它的声誉低于 10。这是链接:youspeakschwaebisch.de/progressbar.jpg

标签: android android-progressbar android-5.0-lollipop


【解决方案1】:

在 L Preview 构建中,标签下的 android:useLevel 的默认值错误地更改为 false。您可以通过将其显式设置为 true 来解决此问题。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape
            ...
            android:useLevel="true">
            <solid
                ...

【讨论】:

  • 这已在 master 分支中修复,以备将来发布。
  • 说 'android:useLevelForShape' 是一个未知属性,但 'android:useLevel' 有效!
  • 糟糕!抱歉,是的,正确的属性名称是 useLevel。它加载到的字段是 mUseLevelForShape。 ;)
  • 恐怕高手,官方更新,空中推送也有这个问题
  • 是的,修复程序仍在等待发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 2015-01-26
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
相关资源
最近更新 更多