/** * 获取GridView的高度 * @param gridView * @return */ private int getGridViewHeight(GridView gridView){ ListAdapter adapter = gridView.getAdapter(); int height = 0; int itemViewHeight = 0; int adapterCount = 0; int verticalSpacing = gridView.getVerticalSpacing();//gridView设置的垂直边距 if(adapter != null){ adapterCount = adapter.getCount(); if(adapterCount > 0){ View itemView = gridView.getAdapter().getView(0,null,gridView); itemView.measure(0,0); itemViewHeight = itemView.getMeasuredHeight(); } } int columns = getGridDisplayState();//这个函数替换为getNumColumns() height = itemViewHeight * adapterCount; if(columns == 1){ return height; } if(adapterCount % columns != 0){ int rowsNum = adapterCount / columns + 1; height = itemViewHeight * (rowsNum * verticalSpacing); return height; }else{ int rowsNum = adapterCount / columns; height = itemViewHeight * (rowsNum * verticalSpacing); return height; } }