convertView.measure(0,0);
height=convertView.getMeasuredHeight();

解决方案 »

  1.   

    忘记给你解释了,listView的item 由于是适配器动态添加的,所以只有当加载完成后才取得到高度,所以必须要手动调用一次measure方法,平常的时候 都是当需要控件的时候 就调用View的回调方法onMeasure(),listview这种适配器添加的就比较特殊了,当他用的时候才会调用onMeasure(),所以你在onCreate里面取不到高度。
      

  2.   


    这两行可以直接写在getView()里吗?
      

  3.   

    在外面取:
    ListAdapter listAdapter = listView.getAdapter();  
        if (listAdapter == null) { 
            return; 
        } 
    View listItem = listAdapter.getView(0, null, listView); 
    listItem.measure(0, 0); 
    listItem.getMeasuredHeight();
      

  4.   

    为什么我取得高度比实际的要长一点呐,两个item之间有一小段空白
      

  5.   

    你能不能不要成真的是一条单独的线,考虑下可不可以在在item里,当作背景或者是一个宽为1dp,高为充满的背景是黑色的textview
      

  6.   

    ListAdapter adapter = listView.getAdapter();  
        if (adapter == null) { 
            return; 
        } 
    View item = listAdapter.getView(0, null, listView); 
    item.measure(0, 0); 
    item.getMeasuredHeight();