1.Scrollview包裹一个布局和Listview之后,导致listview显示不全的问题。
原因:由于Scrollview必须对一个固定高度的布局进行包裹,但是listview的高度是动态的。因此,会导致scrollview识别不到listview的高度,从而界面上只能看到一个Item高度的listview。
缺陷解决方式:代码中将listview高度固定写死一个高度(比如屏幕高度)
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = mScreenHeight;
listView.setLayoutParams(params);
缺陷:当listview中的数据高度小于该固定高度(比如屏幕高度),则会出现,Listview中显示的数据中,超过有效Item之外的会显示空白,但是仍然可以滑动,给人感觉有Item,只是Item数据为空;
当listview中数据高度大于该固定高度,则显示不全listview,滑动也不会加载剩余item
终极解决方案:
如果要将一个布局和Listview绑定成一个view,可以采用将布局文件作为listview的header,添加到listview的Item中。这样将listview上面的布局和listview作为一个整体,便于整体控制。(上下滑动监听等)
View view = inflater.inflate(R.layout.dispsionstate_item_view, null, false);
listView.addHeaderView(view);
原因:由于Scrollview必须对一个固定高度的布局进行包裹,但是listview的高度是动态的。因此,会导致scrollview识别不到listview的高度,从而界面上只能看到一个Item高度的listview。
缺陷解决方式:代码中将listview高度固定写死一个高度(比如屏幕高度)
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = mScreenHeight;
listView.setLayoutParams(params);
缺陷:当listview中的数据高度小于该固定高度(比如屏幕高度),则会出现,Listview中显示的数据中,超过有效Item之外的会显示空白,但是仍然可以滑动,给人感觉有Item,只是Item数据为空;
当listview中数据高度大于该固定高度,则显示不全listview,滑动也不会加载剩余item
终极解决方案:
如果要将一个布局和Listview绑定成一个view,可以采用将布局文件作为listview的header,添加到listview的Item中。这样将listview上面的布局和listview作为一个整体,便于整体控制。(上下滑动监听等)
View view = inflater.inflate(R.layout.dispsionstate_item_view, null, false);
listView.addHeaderView(view);