[已解决]listview 多布局服用设置了两个布局,判断后更新布局不形,

Android中ListView复用导致布局错乱的解决方案 首先来说一下具体的需求是什么样的: 需求如图所示,这里面有ABCD四个选项的题目,当点击A选项,如果A是正确的答案,则变成对勾的图案,如果是错误答案,则变成错误的图案, 这里当时在写的时候觉得很简单,只要是在点击的时候判断我点击的选项与正确答案是否一样,是一样就将图片换成正确的样式,如果不一样就换成错误的样式,于是我便写了下面的代码(只贴出了核心Adapter中的代码) packag 阅读详情

listView设置了两个布局,判断后更新布局不行


解决办法:

必须要重写getViewTypeConut()的方法和getItemViewType(int position)


@Override
        public int getItemViewType(int position) {
            int ret;
            if(SHOW_LONG_CART){
                ret = SHOW_LONG_CART_TYPE;
            }else{
                ret = SHOW_SHORT_CART_TYPE;
            }
            return ret;
        }



//必须要写这个,不然两个布局也没有用
        @Override
        public int getViewTypeCount() {
            return 2;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if (convertView == null) {
                Log.d("list", "convertView null");
//                int itemViewType = getItemViewType(position);
//                switch (itemViewType){
//
//                }
                if(SHOW_LONG_CART) {
                    convertView = LayoutInflater.from(getActivity()).inflate(R.layout.item_billingdetails, parent, false);
                }else{
                    convertView = LayoutInflater.from(getActivity()).inflate(R.layout.item_billingdetails_short, parent, false);
                }
                holder = new ViewHolder(convertView);
                holder.showLongCart = SHOW_LONG_CART;
                convertView.setTag(holder);
            } else {
                Log.d("list", "convertView not null");
                holder = (ViewHolder) convertView.getTag();
                //如果当前的cart的模式是和之前的不同的,那么需要重新的inflate,就是重新执行为null时候的逻辑
                if (holder.showLongCart != SHOW_LONG_CART){
                    if(SHOW_LONG_CART) {
                        convertView = LayoutInflater.from(getActivity()).inflate(R.layout.item_billingdetails, parent, false);
                    }else{
                        convertView = LayoutInflater.from(getActivity()).inflate(R.layout.item_billingdetails_short, parent, false);
                    }
                    holder = new ViewHolder(convertView);
                    holder.showLongCart = SHOW_LONG_CART;
                    convertView.setTag(holder);
                }
            }


Flutter listview多布局实现 前言 各位同学大家好,很久没有给大家更新blog了最近看到群里一些关于flutter的疑问。结合自己最近的一些想法今天就分享一个flutter listview 多布局给大家,那么不多说我们正式开始 准备工作: 1 需要用到的三方库 flutter_swiper: ^1.1.6 请在pubpsec.yaml 文件只添加依赖并在控制台执行flutter pub get 下载依赖 效果图: ## 具体实现: 1普通的listview多布局: 首先我们写一个listview.builder 然后我们在re 阅读详情

相关推荐

RecyclerView 多布局实现技巧与实战

RecyclerView是Android平台上用于高效显示大量数据列表的组件,相比传统的ListView,它提供了更高的灵活性和性能。RecyclerView通过适配器(Adapter)模式将数据源与视图进行绑定,同时支持丰富的布局管理器(LayoutManager)来适应不同的布局需求。在这一章节中,我们将从RecyclerView的基本概念开始,探索它的工作机制,并了解如何通过各种布局管理器实现不同类型的列表展示。

weixin_31163455的博客 752

ListView的动态更新数据

实际开发中,我们的数据往往都是动态变化的,比如 我增删该了某一列,那么列表显示的数据也应该进行同步的更新,那么本节我们就来探讨  下ListView数据更新的问题,包括全部更新,以及更新其中的一项。 1.先写个demo entity类:Data.java: /** * Created by Jay on 2015/9/21 0021. */ public class D

sunny_wj的专栏 2443

两listview C#互相拖ITEM

两listview C#互相拖ITEM。net.3.5<br>没分了,上传点东西,得点分,希望大家喜欢

ListView更新的几种方法

一.简述 先来介绍一下listview更新数据的几种方法,目前我知道的方法有如下3种: 每次更新数据时都调用 listview.setAdapter(); 每次更新数据时都调用 adapter.notifyDataSetChanged(); 在自定义的adapter中定义update方法; 二.分析 1.每次更新数据时都调用 listview.setAdapter(); ...

王大心不爱吃青椒 1万+

高速串行信号仿真避坑指南:为什么你的SIwave Xnet设置了却不出结果?

本文深入解析SIwave中Xnet功能在高速串行信号仿真中的常见问题,包括模型缺失、网络不完整和端口设置错误等关键误区。通过详细的电路元件模型验证、网络完整性检查及端口配置指南,帮助工程师有效解决仿真不出结果的问题,提升信号完整性分析效率。

weixin_29218963的博客 251

LTE信令流程——切换

LTE信令流程 切换 切换是由基站发起的,不同于小区重选,小区重选是由UE发起的。 基站利用移动性管理算法给UE下发测量任务,在RRC重配置消息中携带MeasConfig信元给UE下发测量配置 切换有三种场景: 同一基站内不同小区的切换 不同基站间基于X2的切换(MME不变) 不同基站间基于S1的切换(MME/SGW可能改变) 1. 同一基站内不同小区的切换 连接态的UE在一个基站的不同小区之间移动 UE上报合适的测量报告(Measure Reports),触发基站切换 基站下发切换命令给UE,

Hxx的博客 1万+

Listview 更新单个Item布局 和 listview.getLastVisiblePosition()=-1 问题的解决

遇到的一个问题 :项目中下载文件部分。在ListView 中单独更新一个进度条。 错误: 不能试用 adapter.notifyDataSetChanged(); 因为此方法会更新全部 ListView,很容易导致程序卡死,产生不好的用户体验。 正确:首先获取点击位置 ,在点击位置没有找过 ListView 的个数 之后,最重要的一步就是让点击位置 减去 ListView 在屏幕中

魔都大白 3241

达梦DCA2023年10月培训及考试总结

本次培训共分三天,培训内容不单单是DCA的单机安装、实例创建、库表操作等,培训内容是把关系型数据库的理论及DM8的产品结合起来讲,很实用。具体的考试则是需要个人大量的线下练习,考试总体而言都是培训讲过的内容,只要用心听,好好练习,哪怕是没有计算机基础的童鞋也能考过。提示:以下是本篇文章正文内容,下面案例可供参考总体而言,本次考试不是很难,用心准备,考前认真听讲,考后多次练习,基本都能通过。

qinjuao的博客 2320

ListView使用ViewHolder时控件数据错乱的注意事项

ListView使用ViewHolder出现复用冲突的原因: 因为复用的原理就是 行布局中 子控件对象的复用: 1.滑动过程中将已完全不显示的控件用行布局的setTag方法保存到ViewHolder中,保存的对象用于下一个即将显示的控件 2.下一个即将显示的控件没有findViewById,而是直接使用了行布局getTag()方法返回的对象(返回的对象不一定) 3.行布局存在CheckBo

qq_22989625的博客 985

ECMWF等大气数据批量下载(Python API)详细步骤

ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间上与其相差尽可能接近的大气数据,用于消除大气的影响,如果数据量较少我们可以查看影像的时间和空间范围进行下载,但是如果处理某个较大区域时可能涉及到大量的影像,如果一景一景对应查找去下载会很麻烦,因此针对大量数据的自动批量下载很有必要。本文根据 https://cds.climate.copernicus.eu/#

liuxiaojiangtobeno1的博客 1万+

Carsim与AVL CRUISE联合仿真:从零搭建整车模型的实战指南

本文详细介绍了如何从零开始搭建Carsim与AVL CRUISE联合仿真整车模型,涵盖软件环境配置、接口设置、模型连接及调试技巧。通过联合仿真,可充分发挥Carsim在车辆动力学和AVL CRUISE在动力系统仿真方面的优势,为电动车和混合动力汽车的研发提供精准的整车模型分析。

weixin_29067143的博客 938

ListView Item 多布局的实现

Android ListView 多布局实现摘要 ListView 多布局允许在列表中显示不同类型的项目视图,适用于聊天、商品列表等场景。实现要点: 核心方法: getViewTypeCount() 返回布局类型数量 getItemViewType() 指定每项的布局类型 getView() 根据类型绑定对应布局 实现步骤: 定义数据模型(区分不同类型) 创建多种布局XML文件 重写BaseAdapter方法 使用ViewHolder优化性能 典型应用: 文本+图片混合列表 聊天界面(文本/图片消息) 电商

likuoelie的博客 1042

DIY玩家必备:用SSS1623芯片打造高性价比USB麦克风(附完整电路图)

本文详细介绍了如何利用SSS1623芯片DIY高性价比USB麦克风,包括元件选型、电路设计、PCB布局及调试技巧。通过完整的电路参考设计和实用建议,帮助电子爱好者打造专业级录音设备,实现免驱动即插即用功能。

weixin_29166013的博客 239

ListView Item多布局的实现

ListView多布局实现摘要 (150字内) Android中实现ListView多布局需重写BaseAdapter的3个关键方法: getViewTypeCount() - 返回布局类型总数 getItemViewType() - 根据数据返回对应布局类型标识 getView() - 按类型加载不同布局并绑定数据 典型场景: 聊天界面(文本/图片消息) 商品列表(不同商品样式) 实现步骤: 定义数据模型(含类型标识) 创建多种布局XML 在Adapter中动态判断类型 使用ViewHolder优化性能

m0_57545130的博客 800

温度实时检测预警系统(STC89C51RC+DS18B20)

温度实时检测预警系统

1 兴趣 2 实践 1495

PyInstaller打包后在Win7无法运行,提示缺少`api-ms-win-core-path-l1-1-0.dll`问题解决

这个问题的关键在于Python 3.12和Windows 7之间的兼容性问题。解决方法是使用Python 3.8.8版本进行打包,确保程序能够在Windows 7系统上运行。如果你也遇到类似的问题,不妨尝试降级Python版本,看看是否能够解决。希望我的经验能够帮到你!如果你在使用PyInstaller打包时遇到其他问题,欢迎留言讨论。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 994

ListView实现多布局(内含对instance of和setTag()的讲解)

ListView是我们开发中最常用的控件之一,不过现在差不多bei后起之秀RecycleView抢了风头,但是ListView之中的一些思想还是对开发能起大作用的。好的,今天我们要探讨的主题就是ListView中的多布局技术。 这是一个ListView多布局的简单实现(很丑我知道),通过这种方式,能够实现像QQ、微信的聊天界面,也或者是像联系人列表等等。下面说一说实现过程,大致流程和正常使用...

LINDAMAN00的博客 467

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BaseAdapter结合ListView_实现多布局

项目理解: 1.聊天气泡使用padding填充和margin属性设置边距 2.当我们在使用工具类的时候,如果不想在类中的方法做具体实现那么就可以写一个抽象方法,在使用的时候做具体的实现,这样可以大大增加工具类的复用性 大体的效果 1.适配器 abstract class Myadapter<T> extends BaseAdapter { int[] layouts; ...

yuhui77268769的博客 429

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android中listview学习与记录,简单文字列表、自定义列表、多布局、点击回调

android中listview学习与记录 简单的文字列表 布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

wodecc_u的博客 544

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

listView多布局出现ClassCastException的解决

这几天在开发的过程当中需要用到listView加载不同的布局,在加载多布局时,需要用到ViewHolder1和ViewHolder2 ,并且两者都需要setTag和getTag , 但是在有的时候会出现ClassCastException,这是因为listView会复用convertView,当convertView不为null的时候就会选择利用上面加载过的,但是它并不知道哪个布局是与自己同布局的,

Eric的博客 1817

Recyclerview&..多布局

Recyclerview recyclerview比listview的优点 RecyclerView比listview实现效果更多 RecyclerView根据项目需要插拔功能 RecyclerView默认不支持点击事件->程序员代码中通过回调接口的方式添加监听 一.效果:线性/网格/瀑布流 二.重要的方法 1.RecyclerView横向滑动: LinearLayoutManager....

lioio_的博客 186

第1天Recyclerview基础+接口回调点击事件+多布局+随机值生成瀑布流

第1天Recyclerview基础Recyclerview一.效果:线性/网格/瀑布流二.重要的方法三.RecyclerView的使用四.代码五.实现多布局只给出适配器代码:微信通讯录页面六.XRecyclerview的使用:上拉加载 下拉刷新1.XRecyclerView和Recyclerview的区别:2.XRecyclerView用法:3.XRecyclerView常见方法: Recycle...

qq_34178710的博客 1381

Recyclerview基础+接口点击事件+多布局+随机值瀑布流

标准的适配器Recyclerview基础一.效果:线性/网络/瀑布流二.重要的方法三.RecyclerView的使用四.代码五.实现多布局只给出适配器代码:微信通讯录页面六.随机高度瀑布流1.适配器代码:2.item行布局ImageView添加的属性七.XRecyclerView的使用:上拉加载 下拉刷新1.XRecyclerView和RecyclerView的区别:2.XRecyclerView...

TimPika的博客 375

ListView的进阶-跳转 下拉 上拉 多布局重用

珍惜作者劳动成果 转载请注明出处实现item监听跳转到指定页面 监听注册 listView.setOnItemClickListener(this); 回调方法 @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object item = parent.ge

张鹿鹿的专栏 420

Recyclerview基础+接口回调点击事件+多布局+随机值生成瀑布流

第1天Recyclerview基础 Recyclerview 一.效果:线性/网格/瀑布流 二.重要的方法 三.RecyclerView的使用 四.代码 五.实现多布局只给出适配器代码:微信通讯录页面 六.随机高度瀑布流 1.适配器代码: 2.item行布局ImageView添加的属性 七.XRecyclerview的使用:上拉加载 下拉刷新 1.XRecyclerView和Recyclervie...

lizhuang_666的博客 423

ListView的复用->购物车,listView的布局复用->聊天窗口

1:ListView+adapter的使用:ListViewHeader,Footer,ExpendableListView,ListView多布局类型, ListViewAdapter使用时的注意事项; 2:机型适配 3:WebView MVC c-》adapter, ListView 永远要通过Adapter来刷新 Adapter 永远有数据来更新; 任何List

Kodulf的专栏 931
上一篇: oss 访问文件缩写@150h_150w_2e
下一篇: fresco 设置图片的圆角
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值