这几个点, 不算是坑, 但是也确实浪费了我一些时间
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的宽和高.
来源:oschina
链接:https://my.oschina.net/u/1393188/blog/488394