【问题标题】:Android - Circular progress bar not workingAndroid - 圆形进度条不起作用
【发布时间】:2016-07-18 20:12:20
【问题描述】:

我正在尝试创建一个不确定的进度条来表示在我的应用程序中加载。然而,在尝试了无数的 xml 布局和不同的代码之后,我似乎无法得到任何工作。这是我的主要片段的 xml 文件:

<FrameLayout 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"
             tools:context="com.example.dwinnbrown.xxx.FirstFragment">

    <!-- TODO: Update blank fragment layout -->
        <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />

    <ProgressBar
        android:id="@+id/prgrsbar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:max="500"
        android:progress="0"
        android:indeterminate="true"
        android:progressDrawable="@drawable/circular" />


</FrameLayout>

还有我的 circular.xml 文件:

<shape
    android:innerRadiusRatio="3"
    android:shape="ring"
    android:thicknessRatio="7.0">

    <gradient
        android:centerColor="#007DD6"
        android:endColor="#007DD6"
        android:startColor="#007DD6"
        android:angle="0"
        android:type="sweep"
        android:useLevel="false" ></gradient>
</shape>

但是输出看起来像这样 - 我错过了什么吗?

【问题讨论】:

    标签: android xml android-progressbar


    【解决方案1】:

    我会进入进度条,但还有一件事需要先改进:

    FrameLayout 适用于相互堆叠的子级,但它不支持对齐其中的视图。

    因此,一个简单的开始就是使用 Relativelayout 作为根视图,然后您可以轻松地将 Progressbar 对齐在视图的中间。

    现在,到进度条,我自己还没有完成你的用例。但我建议你先把它剥离到本质上,看看它是否显示出来,所以:

    <ProgressBar
        android:id="@+id/prgrsbar"
        android:layout_width="150dp"
        android:layout_centerInParent="true"
        android:layout_height="150dp"/>
    

    这应该会向您显示一个简单的进度条,该进度条只会继续旋转一圈。如果没有,其他地方就有问题。

    之后,您可以通过添加最小/最大值来构建它以查看它是否变直

    最后,添加drawable,我只是猜测,这可能是这里的问题,我们可以查看失败的确切原因,但是我们已经找到了根本原因并且可以轻松地搜索错误。 :)

    编辑:

    我在网上看了一点,从我发现drawable应该看起来类似于这个(虽然未经测试):How to set color to secondary drawable in progress bar

    【讨论】:

    • 好的,感谢您的帮助,我现在将全部测试。
    • 好的,现在呈现一个水平滑动条 - 不幸的是不是圆形的。
    • 如果进度条没有最大值和进度值,它应该是圆形的,你确定它们不存在吗?无论哪种方式,这都是一个开始,这意味着现在显示视图! :)
    • 由于某种原因,应用程序无法使用 构建,如果这会产生影响,我将使用片段
    • 嗯,不,应该没问题。它是 xml 中的“RelativeLayout”。也许您正在获取片段内的视图并尝试将其存储在 FrameLayout 变量中?没有堆栈跟踪就很难知道。
    【解决方案2】:

    Android 已经内置了一个圆形进度条,试试这个:

    <ProgressBar
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:indeterminate="true"
        android:id="@+id/prgrsbar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    

    如果太大可以用progressBarStyleSmall代替progressBarStyleLarge,或者自己自定义。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多