java gridlayout 行高,RecyclerView GridLayoutManager和動態的行高

2023-10-30

初始化:

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是要添加的意見到佈局

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java gridlayout 行高,RecyclerView GridLayoutManager和動態的行高 的相关文章

随机推荐

  • Basic Level 1003 我要通过! (20分)

    题目 答案正确 是自动判题系统给出的最令 人欢喜的回复 本题属于PAT的 答案正确 大派送 只要读入的字符 满足下列 条件 系统就输出 答案正确 否则输出 答案错误 得到 答案正确 的条件是 1 字符 中必须仅有P A T这三种字符 可以包
  • 【已解决】mysqld: File ‘.\杩滅▼浼氳瘖-鐥呯悊绉?slow.log‘ not found (Errcode: 2 - No such file or directory)

    卸载mysql 删除和mysql相关的文件 MySQL踩坑 含泪填完 MySQL踩坑 含泪填完 1 控制面板 删除之前安装失败的mysql对应的版本 2 删除C Program Files x86 MySQL下的文件夹 见下图 3 显示隐藏
  • 懒汉式之并发安全问题

    在高并发场景下的懒汉式创建对象 造成ID重复创建 代码见下图 并发场景下 iDCreator对象并未随类的创建而创建 而是在需要的时候进行创建 导致垃圾回收器可以对其进行回收 从而有可能同一时间戳 前后两次的对象不一致 造成出现两个不同的i
  • redis 主从配置参数详解

    转 https www cnblogs com chenmh p 5121849 html undefined 安装redis 下载redis wget http download redis io releases redis 3 0 7
  • 基于51单片机的温控风扇设计

    作者 何朋伟 19计科一班 宏定义 define uchar unsigned char define uint unsigned int 包含头文件 include
  • Java系统多个JSSE认证

    问题描述 由于项目需要 系统需要多个JSSE认证 登录使用SSL 邮件收取 解决办法 一 对于需要一次JSSE认证来说 可以通过 1 InstallCert工具来安装证书 Copyright 2006 Sun Microsystems In
  • 模型实战(10)之win10下tensorRT部署yolov5算法

    win10下tensorRT部署yolov5算法 针对yolov5的众多版本 目前有几种部署方法 1 tensorrtx 大神针对众多网络模型 包含yolov5众多版本 开源的一个转换工具 部署方式为 onnx gt wts gt engi
  • egret native使用自定义字体

    参考文章白鹭官方链接 除了文章提到的修改内容 还有文章没提到的一些内容如下 1 在egretProperties json文件中添加字库名称 2 添加字库资源 以上是android apk包内改变字体的方法 而移动端浏览器的设置方法则需要另
  • 关于layer.js中layer.confirm弹出框看不到或者不居中问题处理

    在jsp页面body 标签上加上style height 100 就可以解决
  • 在Android中实现Unity3D的背景是透明的 u3d显示在安卓的上一层

    在Unity中 可以通过设置Camera的背景 Camera下的Environment下的Background Type设置为Solid Color Background需要设置黑色透明度0 即ARGB为 0 0 0 0 透明度不为0则无法
  • 安卓应用开发入门:两个 Activity 之间的跳转

    关键知识 Intent Intent 意图 主要实现Activity之间的来回切换和数据传递 Intent是一种轻量级的消息传递机制 这种消息描述了应用中一次操作的动作 动作涉及数据 附加数据 Android系统根据此Intent的描述 负
  • 凭借这份面经,大专的我成功拿到腾讯Android岗offer

    一 简历 网上有很多对程序员简历的一些指导 这里就不重述 大家可以搜下网上其他大神的总结 结合自身情况修改下 我有几点建议 1 尽量不要花哨 程序员和设计师或者产品运营还不一样 我们的简历成功与否决定权还是在技术面试官那 而他们看重的是你的
  • centos6.8下l2tp客户端xl2tpd的安装配置

    环境 DigitalOcean centos6 8作为l2tp客户端 ros6 43 8作为l2tp服务端 1 安装xl2tp和ppp rpm ivh http mirrors yun idc com epel 6 x86 64 epel
  • 你能活过80岁么?9大因素决定人的寿命

    你能活过80岁么 9大因素决定人的寿命 最近 一项世界上历时最长 规模最大的老龄化研究显示 对中年男子而言 寿命能否达到80岁以上 取决于9项指标 即体重 血压 血糖 胆固醇 受教育程度 婚姻状况 是否酗酒 是否吸烟以及是否拥有好的握力 这
  • 测试音质好坏的软件,音响音质的好坏简单的两招测出

    原标题 音响音质的好坏简单的两招测出 怎样判断一个音响好坏 对于略懂略懂的你真的可以判断一个音响的好坏 当没有专业的测试工具也没有精确的仪器时候 应该怎样判断一个音响好坏 然后就买买买 低配置的测试 工具 一杯水 一首无损音质的歌曲 测试低
  • Android实现屏幕旋转方法

    本文实例总结了Android实现屏幕旋转方法 分享给大家供大家参考 具体如下 在介绍之前 我们需要先了解默认情况下android屏幕旋转的机制 默认情况下 当用户手机的重力感应器打开后 旋转屏幕方向 会导致当前activity发生onDes
  • 金融分析与风险管理——投资组合的有效前沿及资本市场线

    金融分析与风险管理 投资组合的有效前沿及资本市场线 1 投资组合的可行集 2 投资组合的有效前沿 3 资本市场线 1 投资组合的可行集 投资组合中的权重变量可以实现投资组合的预期收益率与收益波动率之间的映射关系 在投资组合的理论中 所有可能
  • Tomcat服务安全加固和优化

    转载来源 https help aliyun com knowledge detail 37421 html spm a2c4g 11186623 4 5 4ad6510eY2UhOS 介绍 tomcat服务默认启用了管理后台功能 使用该后
  • Docker安装(RPM包方式)

    Docker安装 RPM包方式 一 安装环境准备 1 操作系统要求 1 查看内核版本 root nod var uname r 3 10 0 957 el7 x86 64 2 查看操作系统版本 root nod var cat etc os
  • java gridlayout 行高,RecyclerView GridLayoutManager和動態的行高

    初始化 postLine setAdapter postsAdapter postLine setLayoutManager new GridLayoutManager getActivity 2 準備後添加他們recyclerView功能