4.1 Jellybean上的android片段内的GridView适配器问题

时间:2013-10-16 08:13:55

标签: android android-gridview

我正在开发一个日历,从现在起最长日期为90天。

我有一个活动和片段代表几个月可供选择的日期。我正在使用片段,因为我正在使用viewpager进行滑动(我确定这是一个词)

到目前为止,它在2.2,2.3,4.0和4.2上运行良好,但是在4.1中我的代码并没有按照它应该做的那样。

我在每个片段中都有一个gridview来表示该月的日期。我在每个gridview上设置了一个onItemClickListener。在监听器中,我在adapterView上获得一个句柄来检索正确的适配器,从而计算出正确的日期。除了4.1之外,我测试的每个操作系统版本都能正常工作。 4.1给了我错误的适配器。

作为一个黑客,我测试4.1然后调用父活动来获取viewpager的当前位置并获取片段的句柄,它是正确的适配器。

然而,在这种方法中,我的selector.xml文件被破坏,即在点击时只有“一些”日期将导致我的选择器被激活。即占据第1列和第7列的周末。

如果其他人有这种行为的经历,那么正确的方向就会受到欢迎。即如何修复不正确的适配器返回,或如何修复我的selector.xml的非触发

我之前不想使用代码,因为我上面的描述相当冗长。但如果有人愿意,我会发布代码

1 个答案:

答案 0 :(得分:1)

所以我设法解决了这个问题,这不是我上面的假设。适配器视图没有问题,问题在于视图寻呼机和片段的z索引,触摸事件由不正确的片段注册。

修复是将gloabalLayoutListener添加到viewpager,然后获取第一个视图,并调用view.bringChildToFront();

问题已解决,我希望这有助于某人。