在Android Jelly Bean上看不到的视图

Pie*_*lse 13 android android-4.2-jelly-bean

我目前正在开发一个应用程序,可以使用该应用程序检索和查看计划.为了显示时间表,我使用了来自Google IO 2011应用程序的TimeRulerView(和BlocksLayout和BlockView)java源文件,因为我喜欢它的外观.源代码可以在这里找到:https://github.com/underhilllabs/iosched2011.(谷歌用IO2012的代码替换了一个).

由于我的Galaxy Nexus昨天更新了Jelly Bean(4.1.1),因此TimeRulerView(和/或其中一个)不再显示.

奇怪的是它们实际上仍然在那里,但是没有可见的.我可以看到时间通常具有的长度的滚动条.此外,当我通常在视图中单击一个块时,我会得到一个小弹出窗口,当没有看到时间表或块时,这仍然会发生.

我在我的JB GN上测试了原始的IO2011应用程序,但是在那里也看不到任何东西,所以问题在于(一个)视图或者JellyBean渲染视图的方式(项目黄油可能?).

请参阅此处(https://dl.dropbox.com/u/7102660/TimeRulerView_JellyBean_problem.zip),了解ICS(应用程序正常),JB(应用程序无法正常工作)和GoogleIO2011应用程序的屏幕截图.

Chr*_*ist 7

这可能与硬件加速有关吗?我刚刚在带有ICS的几部手机上遇到了一个问题,但并非所有手机/设备都受到影响.将hardwareAccelerated标记添加到我的清单中也没有解决问题,我不得不在特定视图上定义它,我不希望硬件加速.我的解决方案在我的xml布局中使用了android:layerType ="software",在java代码中使用了setLayerType(LAYER_TYPE_SOFTWARE,null).

编辑:测试这个更多,它没有解决我的问题使用Jelly Bean上的setLayerType.在ICS上将图层类型设置为软件确实解决了我的问题.我可以让视图显示的唯一方法是将整个应用程序或特定活动设置为android:hardwareAccelerated="false".


Ste*_*Arn 4

感谢克里斯的回答,我尝试了硬件加速设置。我也使用 iosched2011 代码,只需android:layerType="software"从 block_content.xml 文件内的 BlocksLayout 视图中删除该行。