android的recyView设置item先是不同的高度,类似瀑布流

2023-12-06 15:32

本文主要是介绍android的recyView设置item先是不同的高度,类似瀑布流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决方案是:在adapter里获取了item的高度做了一个数值范围内(设置高度的下限和高度的上限,这里设置的高度是最低值加上一个范围内的随机数的值),这样就ok了,这里的适配器集成了万能的适配器BRVAH

public class BRVAHImgAdapter extends BaseQuickAdapter<ImgEntryResponse, BaseViewHolder> {private final static String IMG_URL = CommonServerUrl.IMG_SERVER_URL;//最新地址List<ImgEntryResponse> mBRVAHImgObjList;//构造public BRVAHImgAdapter(int layoutResId, List<ImgEntryResponse> data) {super(layoutResId, data);}@Overrideprotected void convert(@NonNull BaseViewHolder helper, ImgEntryResponse item) {//helper.setText(R.id.id_text, "第" + helper.getAdapterPosition() + "个数据");ImageView img_view = helper.getView(R.id.iv_indexImg_brvah);String url = IMG_URL + item.getPT();Glide.with(mContext).load(url).placeholder(R.drawable.prestrain_icon)//加载占位图/图片未加载,提前展示给用户
//                .skipMemoryCache(true)
//                .diskCacheStrategy(DiskCacheStrategy.NONE).fitCenter().listener(new RequestListener<Drawable>() {@Overridepublic boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {Log.d("Wain", "BRVAH成功le加载失败 errorMsg:" + (e != null ? e.getMessage() : "null"));return false;}@Overridepublic boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {Log.d("BRVAH成功le", "BRVAH成功le  Drawable Name:" + resource.getClass().getCanonicalName());return false;}}).into(img_view);// helper.setText(R.id.tv_imgName, item.getD());int position = helper.getLayoutPosition();Log.d("当前条目的位置++", position + "");//获取item宽度,计算图片等比例缩放后的高度,为imageView设置参数ViewGroup.LayoutParams params = img_view.getLayoutParams();WindowManager wm= (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);int width = wm.getDefaultDisplay().getWidth();//设置图片的相对于屏幕的宽高比params.width = width / 2;params.height = (int) (260 + Math.random() * 330);//设置随机高度img_view.setLayoutParams(params);}}

这篇关于android的recyView设置item先是不同的高度,类似瀑布流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462329

相关文章

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触