Android GridView自适应高度(不出现滚动条)
2017-09-17 10:13
465 查看
最近有个需求就是,网格状显示,且需要自适应高度(不出现滚动条,如果有滚动条就需要考虑GrideView互相嵌套的滑动事件编写了,虽然不麻烦,但布局看起来却不一定好看),大概看了一下网上的解决方法,最终采用了如下方案:
xml:
另外,提供大家一个可以不用复写GrideView的方法,但要每次更新数据后都用该方法设置一下高度(同样需要在xml中配置GridView的 android:numColumns):
public class MyGridView extends GridView { public MyGridView(Context context) { super(context); } public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } @Override public int getNumColumns() {//可以不复写,但必须在xml中声明android:numColumns="3" return 3; } }
xml:
<com.xx.view.MyGridView android:id="@+id/legend_grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchMode="columnWidth" android:layout_margin="20dp" android:numColumns="3"/>
另外,提供大家一个可以不用复写GrideView的方法,但要每次更新数据后都用该方法设置一下高度(同样需要在xml中配置GridView的 android:numColumns):
/** * gridview计算高度 * */ public static void setGridViewHeightByChildren(GridView gridView){ //获取gridview高度 ListAdapter listAdaper=gridView.getAdapter(); if(listAdaper==null){ return; } //总高度 int totalHeight=0; //计算行数 向上取整 int lineNum=Math.ceil((double)listAdaper.getCount()/(double)gridView.getNumColumns()); View item=listAdaper.getView(0,null,gridView); item.measure(0,0); //获取高度和 totalHeight=item.getMeasuredHeight()*lineNum; //布局参数 ViewGroup.LayoutParams params=gridView.getLayoutParams(); //设置布局高度 params.height=totalHeight; //设置margin ((ViewGroup.MarginLayoutParams)params).setMargins(10,10,10,10); //设置参数 gridView.setLayoutParams(params); }
相关文章推荐
- textarea如何实现高度自适应(不出现滚动条)?
- Android动态设定GridView的高度,固定column,实现高度自适应
- Android动态设定GridView的高度,固定column,实现高度自适应
- android设置GridView高度自适应,实现全屏铺满效果
- Android GridView自适应Item高度
- Android 让GridView的高度为Wrap_content根据内容自适应高度
- Android——自定义自适应高度的GridView
- Android GridView之添加分隔线,动态设置高度,实现高度自适应,并解决第一个item不显示的问题
- Android动态设定GridView的高度,固定column,实现高度自适应
- Android——自定义自适应高度的GridView
- DIV 100% 自适应高度 不出现滚动条
- flex自适应高度内容高度超出容器高度自动出现滚动条的问题
- Android GridView自适应高度
- 用代码适配Gridview使得高度既不出现滚动条也不出现空白区
- Android动态设定GridView的高度,固定column,实现高度自适应
- Android动态设定GridView的高度,固定column,实现高度自适应
- Android动态设定GridView的高度,固定column,实现高度自适应
- Android动态设定GridView的高度,固定column,实现高度自适应
- android ViewPaper高度自适应
- Android 自定义imageview 图片宽度固定大小高度按比例自适应