原本是做个listview,然后listView.addHeaderView(Gallery)
而且header的Gallery要一直循环轮播
这是轮播关键代码
// gallery设置spacing(间隙)后,需scroll比spacing距离稍大的位置,才能onkeydown,否则onkeydown不生效。
gallery.onScroll(null, null, 1, 0);
gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
补充下:因为gallery图片间会有叠加出现,所以要在xml中设置下spacing间隙距离。但是设置了spacing,由于有间隙,所以onkeydown方法无法使用,需要先滚动到比spacing距离稍大点位置,才能播放下一张。
在滚动listView的时候,当gallery完全不可见后,会报错
Gallery.onScroll这个方法报错,起初以为是gallery空了,但是测试发现并不是。
错误指向1008行,所以去看了下源码
源码中child已经进行了判断,所以哪里报空指针成了我心底的谜。
后来,看源码看到了。Gallery的一个方法,isShown();看见这方法,顿时乐开了。功能如其名。判断gallery当前是否显示
这是解决方法
if (gallery != null && gallery.isShown()) {
// gallery设置spacing(间隙)后,需scoll比spacing距离稍大的位置,才能onkeydown,否则onkeydown不生效。
gallery.onScroll(null, null, 1, 0);
gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
}