Android GridView根据Item的行数设置高度
16lz
2021-01-23
以下两种方式都可以做到:
一、在xml布局文件中设置,wrap_content即表示根据gridView的内容自使用宽高,代码如下:
android:layout_width="wrap_content"android:layout_height="wrap_content"
二、在代码中动态设置,可以在对gridview赋值之后,计算gridview的宽高,然后进行设置:
intheight=20;//此处的高度需要动态计算intwidth=30;//此处的宽度需要动态计算LinearLayout.LayoutParamslinearParams=newLayoutParams(width,height);gridview.setLayoutParams(linearParams);//使设置好的布局参数应用到控件
需要注意的是:如果你的gridview是嵌套在ScrollView中,那么,你需要重写gridview控件,不然gridview只显示一行的问题(即高度不够),具体重写方式,可以参考下面代码:
/***@authorhnbcinfo*自定义GridView控件,解决在ListView或ScrollView中使用GridView导致GridView显示不全的问题*当前应用:时间轴中,图片显示*/publicclassGridViewForScrollViewextendsGridView{publicGridViewForScrollView(Contextcontext,AttributeSetattrs){super(context,attrs);}publicGridViewForScrollView(Contextcontext){super(context);}publicGridViewForScrollView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);}@OverridepublicvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){intexpandSpec=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec,expandSpec);}}
更多相关文章
- Android JAVA代码执行shell命令
- 〖Android〗OK6410a的Android HAL层代码编写笔记
- Android:如何从堆栈中还原ProGuard混淆后的代码
- android recovery 主系统代码分析
- Android Studio 学习 - 基本控件的使用;Intent初学
- 【Android】 横向纵向滚轮控件
- Color State List用于控件在各状态下的文本颜色显示