view.invalidate无法在手机上工作

时间:2013-09-03 18:31:32

标签: android android-emulator android-view

我有一个自定义视图,由多个视图和标签组件组成。当用户触摸视图时,我在视图周围绘制一个框架以指示所选状态,并在双击时更改背景。通过向视图传递与背景不同的框架颜色并调用view.invalidate(),使用视图的重写绘制功能绘制框架。同样适用于背景变化。

只要我在为API 7开发时,这就完全可以正常工作。甚至在运行API 16的手机上。我最近将代码迁移到API 11+,现在所选框架不再显示,背景也不显示即使它仍然在模拟器(API 14)中工作,我的手机也会发生变化。

下午试图追踪错误的位置,我发现在我的手机上,调用view.invalidate()并没有触发重绘视图。我也尝试了view.requestLayout()和view.postInvalidate()(只是为了确保)具有相同的结果。将invalidate命令放在一个单独的线程中也不起作用。

总结:
代码API 7 - 电话API 16 - 仿真器API 7到14 view.invalidate工作
代码API 11 - 手机API 16 - 模拟器API 11到14 view.invalidate在手机上但在模拟器上不起作用。

我有来自Verizon的Motorola RAZR M

这是一个已知的错误,还是在处理API 11中的问题时会发生变化?

感谢任何帮助。

0 个答案:

没有答案