不在视图中时,自定义视图会丢失背景资源

时间:2013-04-17 23:22:47

标签: android

所以,我正在添加来自AdMob或MMAds的广告,我有MMAds非页内广告出现,退出时,我触摸其中一个列表项,开始新活动,然后在活动结束时,会发生这种情况:

http://i.imgur.com/Zq7vvkQ.png

顶部项目没有绘制背景资源,底部与此类似。这种情况有时会发生在中间(对于广告,它们都会消失)。

我想知道为什么会发生这种情况以及如何防止它......我在其他问题上找到的最多就是在ListView上使用以下代码:

android:cacheColorHint="#00000000"

或者

android:scrollingCache="false"

后台资源正在自定义ListAdapter的getView(int,View,ViewGroup)方法中绘制。

感谢任何帮助,

Justin W。

2 个答案:

答案 0 :(得分:2)

要验证您的问题,请尝试运行hierarchyviewer,分析您的观看树并尝试找到可能的解决方案。您是否使用过Hierarchy Viewer?

答案 1 :(得分:1)

所以,我有一些代码:

public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        item = inflater.inflate(R.layout.griddler_menu_choice_item, parent, false);
    } else {

        item = convertView;
    }
            return item;

}

基本上这是为了保持它更高效,所以它不必继续创建视图,因为它的成本很高,但这会以某种方式影响最终结果......所以现在它可以工作=)。

忘了添加如何修复此问题...删除其他部分和if一般情况下,只需保留代码行:

        item = inflater.inflate(R.layout.griddler_menu_choice_item, parent, false);

为我修好了。