项目中那些事| ListView 一些问题

android SimpleAdapter 中添加按钮响应事件 NULL 博文链接:https://aygxylxk.iteye.com/blog/1250203 立即下载


4.  java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.

原因主要还是牵涉到 线程之间同步 问题,ListView本身就是线程不安全的 ,出现以下错误。 主要是 线程1更新了Adapter中的内容,却还没有来得及通知内容已经更新,就又有线程2更新了Adapter中的内容,这个时候如果线程1再通知内容更新

  解决办法:

  把数据源ListData 和 notifyDataSetChanged(); 放到同一个线程中。

我相信方法有很多中,如

1.如何你使用线程处理的后台数据,那么就在run方法里面用Handler将数据send出来到主线程里面的handleMessage然后再addAll或者赋值;

1-1. 不send出,创建一个临时的 List<>, 在handleMessage然后再addAll;

2.如果用的异步task,那么在onPostExecute里面去add或者赋值就ok了,注意千万不要在后台去修改类变量的方式去修改数据;



3. ListView的item动画

实现item动画其实很简单,只需在控件Listview中添加属性android:layoutAnimation=“”即可,下面看具体步骤:

     <ListView
        android:id="@id/lv_test"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="#00000000"
        android:layoutAnimation="@anim/item_layout_anim"/>


首先说一下什么是LayoutAnimationsController?

LayoutAnimationsController可以用于实现使多个控件按顺序一个一个的显示。

1)LayoutAnimationsController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置统一的动画效果。

2)每一个控件都有相同的动画效果。

3)控件的动画效果可以在不同的时间显示出来。

4)LayoutAnimationsController可以在xml文件当中设置,以可以在代码当中进行设置。

在xml当中使用LayoutAnimationController

1)在res/anim文件夹下创建一个名为item_layout_anim文件:

android:dylay -动画间隔时间;

android:animationOrder -动画执行的循序(normal:顺序,random:随机,reverse:反向显示)

android:animation –引用动画效果文件

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:delay="0.5"
   android:animationOrder="normal"
   android:animation="@anim/item_anim"/>
这里注意layoutAnimation首字母大小写(小写),我就在这里调试了好久,汗。。。

2)创建item_anim文件,设置动画效果,从左到右飞入效果

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator" >
    <translate
        android:fromXDelta="-100%p"
        android:duration="1000"
        android:toXDelta="0.0" />
    <alpha
        android:fromAlpha="0.0"
        android:duration="500"
        android:toAlpha="1.0"/>
</set>
到这里,就完成实现ListView中item的动画效果了~



2. ListView的item无法响应点击事件
通常默认能获得focus的控件有Button,Checkable继承来的所有控件,这就意味着如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法;
解决方法:

我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendant”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限。(注:单个设置子控件的 focusable 有时不起作用,有知道原因的请留言,3Q~)


1. ListView的item无法响应点击事件
a.如果是listView的id是使用系统默认的id,如下, 则可以在实现此listView的adapter里override isEnabled()方法:
@Override 
public boolean isEnabled(int position) { 
return false; 
} 

b.如果是listView的id是使用系统默认的id,如下, 则可以在实现此listView的adapter里override isEnabled()方法:


ListView.setEnabled(false);
2017年电赛题目-自适应滤波器 电赛题目解析之自适应滤波器 首先来看看题目: 2017全国大学生电子设计竞赛题目 这道题有很多发挥空间,本文将介绍三种电路: 数字电位器移相模拟电路 压控移相模拟电路 数字方法 一、数字电位器移相模拟电路 对于前级的加法器比较简单,这里贴出一种使用OPA209实现的常规做法: 输入端分别输入A信号和B信号就可以实现A+B,因为信号频率很低不涉及到阻抗匹配问题,所以这种接法没............ 阅读详情

相关推荐

ESP-01S使用micropython,利用Thonny烧写固件

在家舒服的太久了,想学习点新的东西,这次看上了ESP8266系列的联网设备,想自己做点小玩意出来耍耍,下面跟我一起来学习吧。本篇主要记录固件的烧写及测试。Thonny下载链接不算难,但是网上资源较少。也是提醒自己不要忘记这个步骤,记录一下,也分享给和我一样开始接触的小伙伴,加油加油,万事开头难。

weixin_43422072的博客 1693

setEnabled() 和 setClickable() 的区别

工作中有时候经常会遇到控制按钮是否可点击的时候,setEnabled() 和 setClickable() 都可以做到,只要将它们设置成false ,按钮就不可点击,设置成true,按钮就可以点击。        它们的区别在于:        setClickable():设置成true时,按钮为可点击,设置为false时,按钮不可点击,不能响应点击事件,但此时如果setEnabled()为

敕勒歌的博客 2万+

自动配胶机的PLC控制系统设计

我们根据自动配胶机的控制需求,编写了相应的PLC程序。PID温度控制算法的实现方面,我们采用了经典的PID控制算法,通过不断调整加热器的功率,实现对胶水混合温度的精确控制。在PLC程序中,我们编写了PID控制算法的程序模块,通过实时采集温度传感器的数据,计算温度偏差和偏差变化率,并根据PID控制算法计算出加热器的功率输出值,实现对温度的精确控制。在系统调试阶段,我们对自动配胶机的各个部分进行了详细的测试和调试,包括气路和液路的开关测试、传感器的精度测试、步进电机的位置和速度测试以及PLC程序的逻辑测试等。

lagougongzuoshi的博客 1228

Android学习笔记之SimpleAdapter

这是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用于显示行的视图XML文件,通过关键字映射到指定的视图。绑定数据到视图分两个阶段,首先,如果一个SimpleAdapter.ViewBinder是有效的,setViewValu...

web开发 227

AD9361 Fast Lock实战:Python脚本自动生成Profile寄存器配置(附完整代码)

本文详细介绍了利用Python脚本实现AD9361 Fast Lock Profile寄存器自动化配置的实战方案。通过解析频率合成公式、VCO约束及查表机制,脚本能根据目标频率一键生成完整的16进制寄存器序列,大幅提升射频系统开发中多频点切换的效率和准确性,并支持CSV、JSON、C头文件等多种输出格式,便于与FPGA/嵌入式系统集成。

weixin_29194693的博客 475

Proxmox VE(PVE)与UPS联动配置:实现智能断电保护方案

本文详细介绍了为Proxmox VE (PVE)服务器配置UPS智能断电保护的完整方案。通过安装和配置apcupsd软件,实现PVE与UPS的联动,可在市电中断、电池电量不足时自动触发安全关机流程,有效保护虚拟机数据与服务连续性。文章涵盖了硬件选择、软件配置、策略设定及实战测试指南,并扩展了网络共享UPS的高级应用。

python9snake的博客 510

Android ListView中Button事件 点击冲突问题的解决方案

今天遇到一个问题:在设置listview 自定义adapter的时候 ,点击item有点击效果,然后点击item布局文件中的某个button 的时候 也同时触发了listview的点击效果, 解决方案是: 1.在adapter布局文件中添加 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a...

weixin_30498807的博客 195

【UE4】Hierarchical Instanced Static Mesh——一种速度优于Spawn的实例化物体组件

最近需要在场景中实例出很多个相同的模型,位置也很有规律,并且要对它的位置信息进行更新。 但是一个个拖进去实在太麻烦,就发现了Spawn Actor这个蓝图方法,可以实例一个蓝图类在场景中。 但是由于数量较大,实例化的速度太慢,这时发现了一个神奇的组件——Hierarchical Instanced Static Mesh。 新建一个蓝图类,添加该组件,在细节里添加你要实例化的模型对象。 ...

ColorGalaxy 1万+

View setEnabled(false) 影响力

@RemotableViewMethod public void setEnabled(boolean enabled) { if (enabled == isEnabled()) return; setFlags(enabled ? ENABLED : DISABLED, ENABLED_MASK); /* * The View most likely has to ch

fyfcauc的专栏 5908

基于ROS2的无人机野生动物巡查系统设计

自主巡检系统是嵌入式人工智能与机器人技术融合的关键应用方向,其核心在于多源感知融合、实时路径规划与端侧智能识别的协同实现。原理上依赖SLAM定位构建环境地图,结合栅格化建模与混合路径算法(如蚁群+BFS)达成全覆盖遍历;技术价值体现在资源受限平台下的确定性响应与时空对齐能力,支撑高鲁棒性野外作业。典型应用场景包括生态监测、禁飞区巡检及小尺度智能安防。本文围绕ROS2 Humble中间件架构、Livox激光雷达与MaixCAM视觉协同、YOLO11n INT8模型端侧部署等关键技术展开,突出嵌入式AI与实时控

weixin_30598047的博客 650

水文仿真软件:HEC-RAS (Hydrologic Engineering Center‘s River Analysis System)_(7).一维非稳态水力模型

自定义脚本是通过编程语言(如 Python)编写的一系列自动化任务,可以帮助用户更高效地处理数据和运行模型。编写脚本:使用 Python 或其他编程语言编写自定义脚本。集成脚本:将脚本集成到 HEC-RAS 中,实现自动化数据处理和模型运行。

kkchenjj的博客 933

项目中那些事|ListView中嵌套ListView问题

ListView中嵌套ListView问题

那小子很坏 1373

【OpenClaw从入门到精通】第04篇:Web/TUI/钉钉全打通!OpenClaw多端交互实测指南(2026避坑版)

本文详解OpenClaw三大交互方式(Web控制台、TUI终端、钉钉集成),解决新手多端操作难题。Web控制台适合可视化深度配置,TUI终端满足服务器高效运维,钉钉集成实现移动办公协同。提供2026实测配置步骤、代码示例及避坑指南,涵盖设备配对、终端命令优化、聊天机器人回调验证等核心场景,助用户快速掌握"随时召唤AI助理"的全链路方案。 关键词 OpenClaw、多端交互、Web控制台、TUI终端、钉钉集成、AI助理、实操指南 核心亮点 全链路打通:覆盖Web/TIM/IM三端配置

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3544

有关Scrollview嵌套ListView的那些事

有关Scrollview嵌套ListView的那些事同样作为滑动控件的scrollview与listview,似乎本不应该嵌套使用,可作为研发的我们通常无法左右UI妹子们的奇(fan)思(ren)妙(lei)想。作为一个负责任的研发,必须时刻做好兵来将挡的准备。 首先我们来看这样一张设计稿: 整个页面整体是一个带下拉刷新的布局,这里用到了被大家最广泛使用的PullToRefres

github_37279124的博客 2225

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

解决Flutter的ListView嵌套ListView滑动冲突以及无限高度问题

关键代码 shrinkWrap: true, //解决无限高度问题 physics:NeverScrollableScrollPhysics(),//禁用滑动事件 可滑动控件都有这两个属性,给子滑动部件设置上这两个参数,即可办到子ListView跟随父ListView滑动。 demo 代码 import 'package:flutter/material.dart'; class BossMa...

骑猪也能看夕阳 5315

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android有关ListView嵌套ListView的一些问题

利用ListView嵌套ListView实现评论回复功能

随风小江~ 2032

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Phaser ListView 项目常见问题解决方案

Phaser ListView 项目常见问题解决方案 1. 项目基础介绍和主要编程语言 Phaser ListView 是一个开源项目,它提供了一个列表视图类,用于在Phaser游戏框架中实现类似iOS风格的列表滚动效果。这个项目主要用于创建高性能的列表显示,比如得分板等。主要编程语言为JavaScript。 2. 新手常见问题及解决步骤 问题一:如何安装和引入Phaser ListView 问题...

gitblog_00087的博客 800

android listview嵌套listview,ListView嵌套ListView的一些问题

1. 概述这篇文章主要记录下自己在项目中的一个需求,如下图所示:图片.png这个是多家店铺的每个店铺的商品的购物车界面,目前只是还没有对应店铺名称,需要下拉刷新和上拉加载更多,针对于这样的界面,自己采用的是ListView嵌套ListView的,外层的ListView有下拉刷新和上拉加载更多,内层是一个重写 onMeasure()的自定义ListView,但是遇到了2个问题:问题1:嵌套后,...

weixin_35253106的博客 1159

NestedScrollView嵌套ListView出现问题以及解决方法

在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动; 看布局: <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="mat...

隔壁小王的博客 2708

flutter ListView嵌套ListView滚动问题

在flutter开发中ListView嵌套ListView时,俩个ListView都会滚动,而不是一个整体,只需要设置子组件不滚动,并设置高度就可以解决这个问题 Widget build(BuildContext context) { return ListView( children: <Widget>[ Container( ...

microcosm1994的博客 4016

android listview 复用 点击事件,关于ListView的一些不得不说的事

1.1. 读取数据库的数据并显示到ListView上在这里依然使用本文档7.2章节中的工程。在此工程上添加布局文件(2个,一个是Activity对应的布局文件,另外一个是用于显示用户的一条记录,指定ListView数据项的展示样式)。ListView展示样式效果如下:。布局文件的名字必须全部都是小写字母!1、创建ListView展示样式布局文件,文件名为listview_item.xmlxml...

weixin_30324103的博客 373

ListView的焦点问题

ListView 焦点问题解决方案 常见问题表现 焦点丢失、冲突 滚动异常 子控件抢焦点 TV导航不流畅 解决方案 确保ListView可获取焦点 android:focusable="true" android:focusableInTouchMode="true" 处理子控件抢焦点 禁用子控件焦点 android:focusable="false" 单独设置子控件点击事件 修复滚动异常 listView.setSelection(firstVisiblePosition); 优化建议 检查父布局的des

m0_57545130的博客 1065

Flutter开发 ListView嵌套ListView 无发现显示问题

ListView嵌套ListView 无发现显示问题 @override Widget build(BuildContext context) { return Scaffold( body: ListView.builder( padding: EdgeInsets.only(top: 0), itemCount: _dataSoure.length, itemBuilder: (BuildCont

冬无雪的博客 1569

scrollview嵌套listview,listview不滚动问题

scrollview嵌套listview,listview不滚动问题 在scrollview里嵌套listview时,listview可能只显示一个item,这种情形需要在listview设置Adapter后手动设置listview的大小,详情请看 http://www.xuebuyuan.com/2191777.html 下面说本次要说scrollview和listview的滚动问

安卓鸟的专栏 3925

记录一个Flutter ListView嵌套Listview出现的问题

我们知道在Flutter里面 ,Listview相当于一个原生的Scrollview,即滑动布局,同时它也可以充当一个数据列表,所以有时候会出现嵌套的情况。 1 那么里面的listview item布局如果没有给定高度的话,它将不显示 2 当手指在内层的listview触摸滑动的时候,发现不起作用,对外层的listview滑动不了,在别处却可以滑动外层的布局 直接上代码解决 ListView(...

u013095264的博客 6692

如何在LISTVIEW控件中上下移动项目(VFP)

如何在LISTVIEW控件中上下移动项目(VFP)001: FUNCTION MoveListItem 002: *-- 功能:如何在LISTVIEW控件中上下移动项目(VFP) 003: *-- 作者:红虎 004: *-- 参数:针对的LISTVIEW控件,以及方向( 1=向下,-1=向上,其他参数则返回) 005: *-- 返回:无 006: LPARAMETERS toListView a

Try to make a different me. 4533
上一篇: 项目中那些事|动画
下一篇: Win7 下装 Ubuntu 双系统遇到的一些问题及解决
Admin_
博客等级 码龄16年 28粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值