一 、 关于listview 的问题
(1)情况一:
今天在改毕设代码的时候,突然发现一个奇怪的现象,就是在在定义的listview中有一个imageview和一个textview,但是当启动这个listview的时候,同一个item的图片会不断的变化,很是奇怪,于是在adapter中进行调试发现,getview,执行了很多次,而且次数也不定,最后在网上发现说是由于listview的item的高度不定,所以很次都要宠幸你计算,而导致需要多次调用getview方法,只需要把该listview的父控件布局改为fill_parent就ok了,这个方法确实可以解决这个问题。所以遇到这个问题,这样改一下就可以了。
(2) 情况二 :
当然如果你还遇到在dialog中使用setadapter来加载一个listview的时候使用上面的方法就不起作用了,这个问题我也没有找到根本的原因,但是找到的解决办法就是,在getview中进行条件判断就能阻止多次调用的问题。使用下面的 判断来防止多次执行。
这样就可以防止多次执行getview的方法。
二 、 关于gridview 的问题
问题和上面基本上是一样的,但是不同的是 ,这个getview多次执行的只是position=0 item 所以与上面的问题有所不同,但是原因还是差不多的,它也是不知道item的高度是多少所以系统会用第一项进行加载测试,所以gridview的第一项就会多次加载。为了解决这个问题,其实方法和上面提到的第二种情况是一样的。也是在getview中进行if else 的判断就可以了。代码与上面是一样的。
总结 下就是要我们使用布局问题的属性的时候,有时候觉得两个属性的性质差不多,但是有时候就会给我们带来很多的问题,我们以后在使用布局属性的时候要注意这些问题,尽量弄清楚每个属性的含义然后再使用,这样就会避免很多的位置的错误。希望大家以后也要注意。^_^
(1)情况一:
今天在改毕设代码的时候,突然发现一个奇怪的现象,就是在在定义的listview中有一个imageview和一个textview,但是当启动这个listview的时候,同一个item的图片会不断的变化,很是奇怪,于是在adapter中进行调试发现,getview,执行了很多次,而且次数也不定,最后在网上发现说是由于listview的item的高度不定,所以很次都要宠幸你计算,而导致需要多次调用getview方法,只需要把该listview的父控件布局改为fill_parent就ok了,这个方法确实可以解决这个问题。所以遇到这个问题,这样改一下就可以了。
(2) 情况二 :
当然如果你还遇到在dialog中使用setadapter来加载一个listview的时候使用上面的方法就不起作用了,这个问题我也没有找到根本的原因,但是找到的解决办法就是,在getview中进行条件判断就能阻止多次调用的问题。使用下面的 判断来防止多次执行。
if(parent.getchildcount() == position)
{
正常情况下应该执行的代码
}
else
{
这里就是多次加载的问题,可以不用理这里面的 代码,
}
这样就可以防止多次执行getview的方法。
二 、 关于gridview 的问题
问题和上面基本上是一样的,但是不同的是 ,这个getview多次执行的只是position=0 item 所以与上面的问题有所不同,但是原因还是差不多的,它也是不知道item的高度是多少所以系统会用第一项进行加载测试,所以gridview的第一项就会多次加载。为了解决这个问题,其实方法和上面提到的第二种情况是一样的。也是在getview中进行if else 的判断就可以了。代码与上面是一样的。
if(parent.getchildcount() == position)
{
正常情况下应该执行的代码
}
else
{
这里就是多次加载的问题,可以不用理这里面的 代码,
}
总结 下就是要我们使用布局问题的属性的时候,有时候觉得两个属性的性质差不多,但是有时候就会给我们带来很多的问题,我们以后在使用布局属性的时候要注意这些问题,尽量弄清楚每个属性的含义然后再使用,这样就会避免很多的位置的错误。希望大家以后也要注意。^_^