我有一个在每个视图中有7 +线性布局的图库,我根据我从db中提取的数据,图库的位置等动态设置了7个这些布局的背景可绘制等。
我有一个for循环,启动7个线程来获取数据并获取生成drawable所需的信息,所有这些都通过一个公共处理程序返回,该处理程序依次获取每个线性布局并运行setBackgroundDrawable()他们每个人。
我遇到的问题是我可以看到我的构造函数为drawable运行了7次,但是draw()只调用了1或2个。如果我向右或向左滚动,新视图也会发生同样的事情。但是,如果我回滚到已经绘制的屏幕,则所有7个线性布局都会正确绘制背景。
我尝试在线性布局,他们的父母,画廊上调用invalidate()和requestLayout(),但无济于事。
我会发布我的代码,但它有一大堆,而且我的手指交叉,我的解释提供了足够的背景。我感谢任何帮助
答案 0 :(得分:0)
我想出的解决方案是在启动它们时计算线程数,一旦最后一个返回,就调用父布局上的invalidate()。我曾经尝试过每次返回时调用invalidate(),但看起来整体而言,事情发生的速度太快了。