这篇文章说一个已经老掉牙的问题,但也算比较常见。
写一个布局的时候,难免会遇到界面中的控件已经超出了手机屏幕可显示的范围,这时候就需要在布局中放置一个ScrollView,使屏幕可以滚动。
当ScrollView中有ListView需要显示的时候,如果ListView是固定高度的,则可以显示正常;但如果ListView里面的数据是不定的,而ListView的高度也是随之变化的,嵌套在ScrollView中的ListView计算不出来高度,这是就会出现显示问题。
常见的现象就是:ListView只显示一行数据。
解决这个问题,就需要根据ListView中item的个数,通过代码动态设置ListView的高度。
动态设置高度对item布局有一个要求:item最外层布局需要是LinearLayout
具体该怎么写,附上一段代码,一看就懂
private void initView() {
attachmentListView = (ListView) findViewById(R.id.attachmentList);
if (attachmentList.size() > 0) {
attachmentListView.setVisibility(View.VISIBLE);
attachmentAdapter = new OAAttachmentAdapter(this