scrollview和listview共存

来源:互联网 发布:汇编语言vb和c语言区别 编辑:程序博客网 时间:2024/06/05 14:11

(1)下面这个方法会计算出listview的高度,记得将listview传入方法中

   mListView.setAdapter(adapter);

   setListViewHeightBasedOnChildren(mListView);


public void setListViewHeightBasedOnChildren(ListView listView) {
      ListAdapter listAdapter = listView.getAdapter();
      if (listAdapter == null) {
      return;
}


int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
     View listItem = listAdapter.getView(i, null, listView);
     listItem.measure(0, 0);
     totalHeight += listItem.getMeasuredHeight();
}


ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);

}

2.定义自己的listview继承listview

public class ChildListView extends ListView {  
    public ChildListView(Context context) {  
        super(context);  
    }  
  
    public ChildListView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
  
    public ChildListView(Context context, AttributeSet attrs,  
        int defStyle) {  
        super(context, attrs, defStyle);  
    }  
          
    @Override    
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  
        MeasureSpec.AT_MOST);  
        super.onMeasure(widthMeasureSpec, expandSpec);  
    }  
}

0 0
原创粉丝点击