Android 开发中踩过的坑之六:几个关于View的tips

这几个点, 不算是坑, 但是也确实浪费了我一些时间


1、ScrollView的高设置成"wrap_content"会缩的很小, 

ScrollView内只允许嵌套一个View, 并且不要将他的高度设置为"wrap_content", 否则它会缩小到很短的样子. 

ListView也是一样. 


2、ListView中的Item如果有不同的样式,最好使用getItemViewType()来区别

事实上, 在ListView的Item完全可以用一种View布局来控制Visiable/Gone, 从而产生不同的ItemView. 

但是, 这样有一些坏处, 1是getView()方法的逻辑会有些复杂, 2是可能会浪费一些inflate时间, 因为有一部分View是要被Gone掉的, 必须要被显示也就不应该被inflate, inflate需要IO, 而IO是一个比较耗时的操作.3浪费内存, 既然不必要显示, 就不应该有这个对象.

BaseAdapter天生有区别ItemView的功能, 重写getItemViewType()方法和getViewTypeCount()就可以实现. 同时在getView()中只需要简单的switch-case就可以处理不同的ItemView了.


3、ImageView并没有先适配宽度,然后根据宽度适配高度的模式。

这个坑踩了两次. 一直以为android足够强大, 但是这个事它真的没做.

 ImageView有很多图片缩放的模式, 但是没有任何一个模式满足先适配宽度, 再根据宽度适配高度的效果. 在尝试了很多次模式组合后, 明白这一点. 所以要做到这一点, 只有老老实实的根据屏幕宽度, 算出合适的图片宽度, 然后根据图片的宽高比例算出图片应有的高度, 设置成IamgeView的宽和高.


你可能感兴趣的:(android,view,技巧,tips)