最近在gridview里动态增加了GLSurfaceView来显示视频,可是一滑动滚动条,GLSurfaceView便会错位,跑到其它item里,找了很久都找不到原因,麻烦知道原因的热心人指点下,非常感谢。

解决方案 »

  1.   

    GLSurfaceView不能放到Scrollable的容器里面
      

  2.   

    忘了在哪里看到过了,下面的链接随便看看吧http://developer.android.com/reference/android/view/TextureView.html
      

  3.   


    非常感谢你的指点,另外再请教你一个问题:我在gridview里在已有布局中让本来隐藏的button在一个item里显示出来(每个item里面都有一个button),其他item里的button还是隐藏的,这样拉动滚动条时,这个显示了的button会跑到其他item里去,这是不是缓存的问题?有没有办法让它不错位?
      

  4.   

    这个要理解一下Android的GridView的视图生成机制,在GridView对应的Adapter里面,视图都是复用的,所以你需要记住哪个项对应的按钮被现实了,在getView的实现里面,把按钮的状态更新下
      

  5.   


    思路明白了,我在想既然如此,是不是可以把每个item的改变都保存起来,即用一个view类数组把全部item项保存起来,然后再在getview里取出来,不过item很多的话,貌似挺占内存的。
      

  6.   

    通常来说是先有了数据模型,再设计显示模板,最后由Adapter来实现将数据显示到模板上(BaseAdapter.getView)。
    如果某个数据的状态变化了,先反应到模型上,再通知模板更新(BaseAdapter.notifyDataSetChanged)或只更新指定的View,比如被点击的那个View