很多时候我们需要实现每列多项数据的ListView时,可以使用GridView,但GridView不能设置HeadView还不能很灵活,这时我们还是倾向使用ListView,当然RecyleView是更好的选择。用ListView实现GridView效果,最直接的是在布局里面就写多份,两列时还可以接受,如果三列四列就太难看了。我分享一种ListView的写法,用ListView实现GridView更方便。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
List<ViewHolder> holderList;
if (convertView == null) {
LinearLayout linearLayout = new LinearLayout(mContext);
convertView = linearLayout;
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
int width = DensityUtil.getScreenWidth(mContext);
int horizonDivide = DensityUtil.dip2px(mContext, 8);
// 行数
int itemWidth = (width - (columnNum+1) * horizonDivide) / columnNum;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
itemWidth, -2);
LinearLayout.LayoutParams params2 = new LinearLayo