【问题标题】:setBackgroundDrawable on multiple items not working properly多个项目上的 setBackgroundDrawable 无法正常工作
【发布时间】:2010-11-17 23:55:46
【问题描述】:

我有一个画廊,在每个视图中都有 7 个以上的线性布局,我根据我从数据库中提取的数据、画廊的位置等动态地为其中 7 个布局设置了背景可绘制对象。

我有一个 for 循环,它启动 7 个线程来获取数据并获取生成可绘制对象所需的信息,所有这些都通过一个公共处理程序返回,该处理程序又获取每个线性布局并运行 setBackgroundDrawable()在他们每个人身上。

我遇到的问题是我可以看到我的可绘制构造函数运行了 7 次,但 draw() 仅在其中 1 或 2 次上调用。如果我向右或向左滚动,新视图也会发生同样的事情。但是,如果我滚动回已经绘制的屏幕,所有 7 个线性布局的背景都会正确绘制。

我尝试在线性布局、它们的父级、画廊上调用 invalidate() 和 requestLayout(),但无济于事。

我会发布我的代码,但其中有一大堆代码,我祈祷我的解释提供了足够的背景。感谢您的帮助

【问题讨论】:

    标签: android


    【解决方案1】:

    我想出的解决方案是在启动线程时计算线程数,一旦最后一个线程返回,就在父布局上调用 invalidate()。每次其中一个返回时,我都尝试调用 invalidate(),但总的来说,事情发生得太快了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2021-10-03
      • 1970-01-01
      • 2017-07-17
      • 2018-01-29
      相关资源
      最近更新 更多