初始化:

postLine.setAdapter(postsAdapter);

postLine.setLayoutManager(new GridLayoutManager(getActivity(),2));

,準備後添加他們recyclerView功能

private void preparePosts(JSONArray posts){

listOfLine1.clear(); //SparseArray

listOfLine2.clear(); //SparseArray

postLine.removeAllViews(); //RecyclerView

postList.clear(); //ListArray postList

int postline2h = 0;

int postline1h = 0;

try{

Post ps;

for(int i = 0; i

ps = new Post(posts.getJSONObject(i));

if(postline1h>postline2h){

listOfLine2.put(listOfLine2.size(),ps);

postline2h += ps.getHeight();

}else{

postline1h += ps.getHeight();

listOfLine1.put(listOfLine1.size(),ps);

}

}

int i =0;

boolean firstnull,secondnull;

while (i!=listOfLine2.size()-1 || i!=listOfLine1.size()-1){

if(listOfLine1.get(i)!=null){

firstnull = false;

postList.add(listOfLine1.get(i));

listOfLine1.remove(i);

}else firstnull = true;

if(listOfLine2.get(i)!=null){

secondnull = false;

postList.add(listOfLine2.get(i));

listOfLine2.remove(i);

}else secondnull = true;

if(secondnull && firstnull) break;

i++;

}

postsAdapter.notifyDataSetChanged();

}catch (Exception e){

log(e);

}

}}

適配器:

public class PostsAdapter extends RecyclerView.Adapter {

private ArrayList posts;

public PostsAdapter(ArrayList postslist){

posts = postslist;

}

@Override

public int getItemCount() {

return posts.size();

}

@Override

public PostsHolder onCreateViewHolder(ViewGroup parent, int viewType) {

return new PostsHolder(new LinearLayout(parent.getContext()));

}

@Override

public void onBindViewHolder(PostsHolder holder, int position) {

holder.setPost(posts.get(position));

}

@Override

public void onViewRecycled(PostsHolder holder) {

super.onViewRecycled(holder);

holder.getPost().die();

}

}

onBindViewHolder post.setPost是要添加的意見到佈局

java gridlayout 行高,RecyclerView GridLayoutManager和動態的行高相关推荐

  1. java 自动行高,20191012——POI设置单元格自动行高(思路)

    在经过Jxls或者POI导出数据至excel中后,发现有的单元格内容太多,既没有自动换行,也没有自动增大行高.那如何通过Java代码来实现呢?请看下面步骤: (一)首先,将excel设置为最合适的行高 ...

  2. android n等分 layout,RecyclerView GridLayoutManager 等分间距

    RecyclerView 表格实现 RecyclerView 配合GridLayoutManager 可以实现类似表格的样式,为了实现均分,adapter 的布局宽度改为匹配父元素,即 android ...

  3. java汽车租赁行,基于jsp的汽车租赁租车行-JavaEE实现汽车租赁租车行 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的汽车租赁租车行, 该项目可用各类java课程设计大作业中, 汽车租赁租车行的系统架构分为前后台两部分, 最终实现在 ...

  4. Java GridLayout(网格布局)布局管理器

    GridLayout(网格布局) ​ GridLayout 布局管理器将容器分割成纵横线分隔的网格 , 每个网格所占的区域大小相同.当向使用 GridLayout 布局管理器的容器中添加组件时, 默认 ...

  5. html中高与行高的区别,深入了解css的行高Line Height属性

    什么是行间距? 古时候我们是用印刷机来处理文字,印出来的每个字都位于独立的一个块里. 行间距,即传说中控制两行文字之间垂直距离的东东. 在CSS,line-height被用来控制行与行之间的垂直距离. ...

  6. [css] img标签是行内元素,为什么却能设置宽高

    [css] img标签是行内元素,为什么却能设置宽高 原来CSS中还有一个概念:可替换元素MDN上是这么解释的:在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS ...

  7. java 内存很高_Java服务器内存和CPU占用过高的原因

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

  8. excel表格行宽列高怎么设置_解决方案:Excel自动调整列宽和行宽什么是快捷键? [Excel设置行高度自适应]...

    如何在Excel工作表中设置自动调整行高? 选择要设置的单元格,然后单击"开始" ----"单元格" ----"格式" ----" ...

  9. java刷新透视表数据源,Java 创建、刷新Excel透视表/设置透视表行折叠、展开

    Java 创建.刷新Excel透视表/设置透视表行折叠.展开 透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表.本文以创建透视表.刷新透视表以及设置透视表的 ...

最新文章

  1. 错误中积累经验,BUG中寻发展,总结中提升
  2. 添用户报错:useradd:警告:此主目录已经存在
  3. 简述Spring技术内幕
  4. 浅析python中的main函数_浅的意思
  5. java 数组map_Java之数组array和集合list、set、map
  6. ajax中get请求url传参数
  7. python爬取网页实时数据_使用 Python 爬取网页数据
  8. 使用IConfigurationSectionHandler在web.config中增加自定义配置
  9. Lost Cows POJ 2182 思维+巧法
  10. java 修改分辨率_JAVA程序分辨率修改及自适屏修改
  11. 直播视频网站源码,静态时钟
  12. 《MySQL DBA: InnoDB_doublewrite/ChangeBuffer/AHI/FNP》
  13. LT2611UXC 2-PORTLVDS 转HDMI2.0
  14. 新物联网!新电商平台!
  15. 【经验】VMware|windows更新20H2版本后VMware虚拟机无法开启(禁用Device guard)
  16. 删除MySQL表的SQL语句-DROP-TABLE-简介
  17. 【吃瓜教程】周志华机器学习西瓜书第三章答案
  18. CCF推荐的中文期刊
  19. linux实现对上传文件的定时备份、增量备份
  20. java基础学习笔记——system

热门文章

  1. 基于朴素贝叶斯算法对肿瘤类别分类
  2. Mac M1遇到更换清华源不成功问题解决办法(实测有效)
  3. 自媒体怎么赚钱?有哪些盈利模式?
  4. 三马论道互联网金融 众上市公司布局大数据
  5. vscode连接远程服务器(傻瓜式教学)
  6. java addall的用法_Java Collections addAll()用法及代码示例
  7. SPI协议的verilog实现:利用spi协议配置寄存器
  8. 我的面试标准:1.能干活;2.Java基础好;3.熟悉分布式框架
  9. 电力监控系统性能测试方案
  10. Linux平台高级调试和优化