很多人问:怎么设置ListView使它高度随内容容量无限延伸?最近我也弄这个需求,网络找了下,发现大多数都是用的是重写LinearLayout方案。而事实上解决这个需求只需要利用ListView的headerview即可。
先说说其它的解决方案吧(这里说的是非利用headview):比如大众点评和凡客的评论列表,我画了一个图如下:
可以看出,大众点评的app评论最为简单:通过一个按钮直接进入comments列表。凡客则采用的是重写LinearLayout方案。至于重写LinearLayout的思路,这里有一片文章:http://www.eoeandroid.com/thread-164066-1-1.html .我测试了发现可以满足一些要求,但是也是有些问题的。下面我就说说利用listview的headerview的方式。
思路蛮简单的:把你listview上方的view单独放到一个layout文件,但后只需在代码里添加这个layout即可。关键代码如下:
comments = (ListView)findViewById(R.id.comments); // add header layout header = LayoutInflater.from(this).inflate(R.layout.product_detail_header, null); comments.addHeaderView(header); //galleryFlow = (GalleryFlow)header.findViewById(R.id.gallery);