文档章节

Listview中的嵌套EditView等抢焦点view

yizhihaohut
 yizhihaohut
发布于 2015/12/25 16:44
字数 388
阅读 720
收藏 3
if(convertView == nul
   holder = new ViewHolder();
   convertView = laoutinflater.inflate(R.layout.fmsearch_layout_app_content,null);
   holder.appView = (TextView) convertView.findViewById(R.id.txt_app);
   holder.image  = (ImageView) convertView.findViewById(R.id.image);
   convertView.setTag(holder);
}else{
   holder = (ViewHolder) convertView.getTag();
}

 

上面其实是我为了尝试listview使用缓存

 

因为是焦点组件,需要记录一些Focus焦点位置,而viewHolder为缓存着复用组件所以每次每次获取到Viewholder

都需要在getview里比较靠前的位置先把里面的position参数设置正确

而focus状态和position是绑定的,所以在滑到指定有focus的position的时候需要手动将焦点view即edittext调用requestfocus(),同时其他的clear的有focus的view,避免焦点错乱。

但是现实是焦点并没有clearfocus之后editetext并不能准确的获取到focus,导致输入的时候出现无法输入的情况

最终解决办法是不适用缓存,每次getview的时候都去初始化一个新的view,发现这个问题确实不存在了。

所以这个问题的解决方案是下下策,后期如果能解决视图缓存的问题,才算完美解决。

if(convertView == null){
        holder = ViewHolder()
        /...省略视图findview/
}else{
        holder = (ViewHolder) convertView.getTag()
}

把这两行注释之后功能就可以正常使用了。 等于就是去掉视图缓存。

这里说的只是其中一种其他的类似 checkBox解决方案是一致的。

© 著作权归作者所有

yizhihaohut
粉丝 7
博文 21
码字总数 19843
作品 0
松江
程序员
私信 提问
android之descendantFocusability用法简析

listView的Item被抢焦点,这是开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问...

byronhs
2016/07/17
78
0
关于setDescendantFocusability的问题

如果布局中设置了 setDescendantFocusability的blocksDescendants listview的item可以自由点击。 但是这样处理的话 item里如果有editview的话 就会获取不到焦点。 如果设置afterDescendants给...

何立
2016/11/29
398
0
ListView Adapter常见问题

解决Item点击无效(因Item里有Checkbox等抢焦点的控件) a。将抢焦点的控件设置为无焦点 android:focusable="false" b。再最外围多布局设置 android:descendantFocusability="blocksDescenda......

极度思想
2015/08/28
47
0
[Android]在ListView嵌套GridView中出现的点击事件处理以及gridview显示

[Android]在ListView嵌套GridView中出现的点击事件处理以及gridview显示不全的问题 写这篇博文也是出于偶然看到自己很久以前写的一堆“烂码”,目的是为了实现一个ListView中能够嵌入GridVie...

QGlaunch
2016/01/08
166
0
Android 软键盘弹出时布局内指定内容上移实现及问题解决

AndroidSDK目前提供的软键盘弹出模式接口只有两种: 一是弹出时自动回冲界面,将所有元素上顶, 一种则是不重绘界面,直接将控件元素遮住, 没有其他模式,如果想实现其他效果,光使用系统接...

xunfang
2016/04/13
296
0

没有更多内容

加载失败,请刷新页面

加载更多

实战项目-学成在线(一)

之前看的黑马程序员实战项目之一,打算以博客的形式写出来,也让自己重新温习一下。 1、项目背景 略(就是当前这东西很火,我们重点在开发,这些就略过) 2、功能模块 门户,学习中心,教学管...

lianbang_W
31分钟前
3
0
基于Vue的数字输入框组件开发

本文转载于:专业的前端网站➫基于Vue的数字输入框组件开发 1、概述 Vue组件开发的API:props、events和slots 2、组件代码 github地址:https://github.com/MengFangui/VueInputNumber 效果:...

前端老手
40分钟前
3
0
百度地图根据经纬度获取运动轨迹

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=n......

泉天下
41分钟前
5
0
学习记录(day04-axios增删改查、v-for循环、页面加载成功处理函数)

[TOC] 1.1 基本语法:插值表达式 <template> <div> {{username}} <br/> {{1+2+3}} <br/> {{'你的名字是:' + username}} <br/> {{'abc'.split('')}} </div><......

庭前云落
今天
4
0
CentOS Linux 7上将ISO映像文件写成可启动U盘

如今,电脑基本上都支持U盘启动,所以,可以将ISO文件写到U盘上,用来启动并安装操作系统。 我想将一个CentOS Linux 7的ISO映像文件写到U盘上,在CentOS Linux 7操作系统上,执行如下命令: ...

大别阿郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部