我想实现的效果是上面的listview在初始化时下面的按钮隐藏但是我目前的话一进去,按钮都是显示的,求教。下面是我现在的代码
Log.i("ht", "convertView.getMeasuredHeight()=============="
+ convertView.getHeight());
// 初始化箭头为未展开
if (convertView.getHeight() == 95 || convertView.getHeight() == 96) {
ViewGroup.LayoutParams params = convertView.getLayoutParams();
params.height = convertView.getHeight() - 40;
convertView.setLayoutParams(params);
}convertView.getHeight()这个高度打印出来为0.。所以我这段代码没有用。。我这个方法是写在adapter的getView里面listviewJava

解决方案 »

  1.   

    /**
     * set listview height
     * 
     * @param listView
     */
    public void setListViewHeightBasedOnChildren(MipcaListView myListView) {
    ListAdapter listAdapter = myListView.getAdapter();
    if (listAdapter == null) {
    return;
    }
    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {
    View itemView = listAdapter.getView(i, null, myListView);
    itemView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    totalHeight += itemView.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = myListView.getLayoutParams();
    params.height = totalHeight + (myListView.getDividerHeight() * (listAdapter.getCount() - 1));
    myListView.setLayoutParams(params);
    }
      

  2.   

    楼主,我推荐你去学习一下ExpandableListview。相信能很好地解决你的需求。
      

  3.   


    convertView.getMeasuredHeight()就好了吧?PS: 3楼的哥们说得对,你这样界面create的时候就加载了太多的东西,item多的时候性能不敢想象。
      

  4.   

    我觉得你应该最开始要隐藏的部分设置android:visibility="gone",当点击触发某个事件时,再将这部分显示出来。