【问题标题】:Multiple progressbar progress value incorrect android多个进度条进度值不正确的android
【发布时间】:2015-06-23 20:50:24
【问题描述】:

我有一个带有多个进度条的视图。当我切换到最后一个选项卡(选项卡 4)并返回时,单个进度条不会保持其值。[基本上当主页选项卡不可见并再次可见时]。

进度条放置在 Fragment 中托管的 LinearLayout 中。看起来像 Youtube 应用程序。在主页上,我有 5 个进度条。 当我第一次设置进度时,所有进度条值看起来都很完美。 个人进度条显示他们自己的个人价值。

但是,当我切换到选项卡 4(不在图片中)时,我回来了,所有进度条的值都设置为最后一个进度条的值。见下图。

我通过删除带有 TextBox 的进度条进行检查,该值按设置保持不变。 我在进度条中添加了最大值,使用了方法1.setProgress,2.incrementProgressBy,没有改进。

由于文本框行为正确,我无法弄清楚我的问题,请帮助。

PS:在 android Fragment(tab) 中,它在不可见时被重新创建并变为可见性。为了避免这种情况,我在 onCreateview 中进行了限制以保留最后创建的 rootview。

【问题讨论】:

  • 我相信您在这种情况下使用的词坚持错误。无论如何,这可能会有所帮助stackoverflow.com/questions/15313598/…
  • 我需要试试这个,但只有进度条(仅在多个进度条的情况下)显示最后创建的进度条的值。但文本框正确显示其文本。非常感谢您指导上述帖子

标签: android android-progressbar


【解决方案1】:

您现在可能已经解决了这个问题,但万一其他人进入该页面时遇到同样的问题:我遇到了同样的问题,选项卡式容器视图 (ViewPager) 中的片段中有多个进度条,并且所有进度条都显示在选项卡之间切换后相同的进度值(最后一组)。我通过在片段的onResume 而不是onCreateView 中设置进度值来解决它。

【讨论】:

    【解决方案2】:

    我在 ViewPager 中使用 2 个进度条时遇到了同样的问题,并通过为每个进度条使用唯一的可绘制实例来解决:

    这会在进度条上显示错误的值:

    val progressDrawable = ContextCompat.getDrawable(it, R.drawable.progress_bar_colors)
    
    mBinding.firstProgressBar.progressDrawable = progressDrawable
    mBinding.secondProgressBar.progressDrawable = progressDrawable
    

    这解决了问题:

    mBinding.firstProgressBar.progressDrawable = ContextCompat.getDrawable(it, R.drawable.progress_bar_colors)
    mBinding.secondProgressBar.progressDrawable = ContextCompat.getDrawable(it, R.drawable.progress_bar_colors)
    

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      有一个公认的答案,但我遇到了同样的问题,在不同的片段和回收站视图中有多个进度条。我的问题与一个观察良好的 Android 进度条错误有关,该错误并不总是更新进度条(请参阅此处接受的答案:android progressBar does not update progress view/drawable

      在我的例子中,我有一个自定义进度条并添加了这些方法来解决这个错误。糟透了,我们作为开发人员必须经常以艰难的方式解决这个问题。

        fun setProgressSafely(progress: Int) {
          setProgress(progress + 1)
          setProgress(progress)
      }
      
      fun setMaxSafely(max: Int) {
          setMax(max + 1)
          setMax(max)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-15
        • 1970-01-01
        • 2021-04-15
        • 1970-01-01
        • 2018-10-27
        • 2017-02-22
        • 1970-01-01
        相关资源
        最近更新 更多