android 机顶盒 view 焦点,AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案...

AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案

本人大二,最近在写一个Android机顶盒的小项目,遇到了这样一个问题。由于App的布局复杂,导致ListView用遥控器获取其Item焦点时变得很卡很慢。需要不断点击上下键才能移动焦点。看了下Logcat,发现焦点每移到最后一个时,总是”can’t find view with Id 1/2/3/4”,试了网上无数种解决方案还是不行。

后来发现,自己为每个Item.setFocusable(true)的绑定方式是有问题的,会导致android系统在ListView里面遍历view的速度很慢。因为当我把Item.setFocusable(true)给注释掉时,ListView非常流畅

最后的解决方案是,直接在Listview做一个全局的绑定来解决问题。

ListViewItem绑定问题解决方案

ListView 配置如下

bg_button_focused.xml

ListView获取Item的焦点问题

当ListView全局绑定焦点后,又有一个问题来了,当你按到遥控器上的确认键时,不会有点击效果。

之前的配置文件如下

即使pressed设置为true还是没有作用,因此我是自己实现了一个选中效果,具体代码如下:

classifyListView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

if (position != clickPosition) {

clickPosition = position;

}

adapter.notifyDataSetChanged();

}

});

@Override

public View getView(final int position, View convertView,

ViewGroup parent) {

LayoutInflater inflater = LayoutInflater.from(STBMainActivity.this);

convertView = inflater.inflate(R.layout.item_classify, null);

final TextView tv = ((TextView) convertView

.findViewById(R.id.tv_item_classify));

tv.setText(InfoConfig.info.class_list.get(position).name);

tv.setBackgroundResource(R.drawable.bg_button_focused);

if (position == clickPosition) {

tv.setBackgroundColor(STBMainActivity.this.getResources().getColor(R.color.purple));

}

return convertView;

}

实现起来非常简单。

希望这篇文章能帮助到大家,毕竟目前AndroidTV开发技术类的文章还是比较少的,请各位多多指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【阿里云 MVP 月度分享】宋亚奇——应用MaxCompute实现电力设备监测数据的批量特征分析...

1 背景知识 电力设备在线监测指在不停电的情况下,对电力设备状况进行连续或周期性地自动监视检测,使用的技术包括:传感器技术、广域通信技术和信息处理技术。电力设备在线监测是实现电力设备状态运行检修管理、提升生产运行管理精益化水平的…

小企业的第一台服务器如何选?

戳蓝字“CSDN云计算”关注我们哦!Henry是一家叫做NewStar的初创小企业的兼职IT管理员一天晚间,下班后的Henry正在忙着“吃鸡”突然,一阵急促的电话铃声响了起来原来是在外地出差的同事需要一份重要的文件,但却无法远程访问服务器H…

Linux 中文无法显示或显示方块

文章目录问题现象:字体需求一、查看字体列表1. 安装字体库2. 字体库中添加中文字体3. 进入字体目录复制需求字体4. 创建中文字体目录5. 上传需求字体6. 修改chinese目录的权限7. 安装ttmkfdir8. 修改字体配置文件9. 刷新内存中的字体缓存问题现象: Linu…

阿里云发布混合云数据存储和灾备方案

摘要: 12月7日,2017苏州云栖大会上,阿里云发布全新的混合云数据存储和灾备方案,此次发布的内容包括最新推出的混合云容灾服务HDR和混合云备份服务HBR,以及全面升级的混合云存储阵列CSA2000和CSA3000。 12月7日&#xf…

html 基本结构

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body></body> </html>

打通钉钉+WebHook:日志服务告警升级

摘要&#xff1a; 用一个最最常用的案例&#xff08;Nginx日志分析&#xff09;来说明当前使用场景&#xff0c;告警要解决的3个问题&#xff1a;是否有错误&#xff1b;是否有性能问题&#xff1b;是否有流量急跌或暴涨 阿里云日志服务是针对实时数据一站式服务&#xff0c;用…

AliOS Things v1.1.1新特性

摘要&#xff1a; 今年杭州云栖大会上&#xff0c;AliOS Things正式发布&#xff0c;10/20在github上开源v1.1.0版本。经过AliOS Things团队及合作伙伴1个多月的努力&#xff0c;很高兴有些更新可以和大家分享。AliOS Things v1.1.1包含了ESP32支持&#xff0c;AT框架&#xff…

Spark精华问答 | spark性能优化方法

Hadoop再火&#xff0c;火得过Spark吗&#xff1f;今天我们继续关于Spark的精华问答吧。1Q&#xff1a;影响性能的主要因素是什么&#xff1f;A&#xff1a;网络传输开销大硬件资源利用率低同一资源的复用率低2Q&#xff1a;优化的方向有哪些&#xff1f;A&#xff1a;设置数据…

android 7.0 解锁亮屏,Android7.0亮屏流程分析

亮屏的本质是改变屏幕的电源状态&#xff0c;经过一系列的调用会来到PowerManagerService中的updatePowerStateLocked()1.PowerManagerService到DisplayPowerControllerprivate void updatePowerStateLocked() {if (!mSystemReady || mDirty 0) {return;}if (!Thread.holdsLoc…

concat函数显示小数点包括0

场景1&#xff1a;当小数点大于等于3位小于5位&#xff1a; select regexp_replace(concat(nvl(round(0.0001,4),0)*100,%),^.,0.)as rate from dual;例如&#xff1a;0.001-0.0001 场景2&#xff1a;当小数点小于等于2位&#xff1a; select concat(nvl(round(0.01,4),0)*1…

阿里云Elasticsearch的X-Pack:机器学习、安全保障和可视化

摘要&#xff1a; ELK是日志分析领域较为流行的技术选择&#xff0c;不少阿里云用户选择在ECS上搭建开源Elasticsearch。与自建开源Elastisearch相比&#xff0c;阿里云Elasticsearch做了性能优化&#xff0c;支持弹性扩容&#xff0c;并搭载了商业版组件X-Pack&#xff0c;为用…

Linux部署Web应用程序超链接下载中文名称文件404问题解决办法

超链接内容如下&#xff1a; <a href"jsp/plugin/用户手册.doc">用户手册</a>开发环境为Windows&#xff0c;Tomcat和WebSphere都用过&#xff0c;超链接都能正常下载 项目生产环境为Linux&#xff0c;由于Linux默认不支持中文&#xff0c;因此超链接下…

2017北京云栖大会:云效企业级协同研发专场议题揭秘!

摘要&#xff1a; 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同&#xff1f;大中型企业如何完成公有云/专有云/混合云转型升级&#xff0c;实现高效协同研发&#xff1f; 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同&#xf…

html5在线api,HTML5+ API Reference

Push模块管理推送消息功能&#xff0c;可以实现在线、离线的消息推送&#xff0c;通过plus.push可获取推送消息管理对象。方法&#xff1a;对象&#xff1a;ClientInfo: JSON对象&#xff0c;获取的客户端标识信息PushMessage: JSON对象&#xff0c;推送消息对象MessageOptions…

毋庸置疑,容器带来改变!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘晶晶对于飞贷金融科技副总裁陈定玮而言&#xff0c;金融行业数据具有相较于其他行业更为严格的的高标准安全性要求&#xff0c;对容错的要求更为尤甚&#xff1b;此外是否能高效支撑飞贷金融科技的核心业务&#xff0c;尤其…

阿里云发布首款全球智能互联的网络产品——云骨干网

摘要&#xff1a; 12月13日&#xff0c;阿里发布全球首款智能互联的网络产品–云骨干网&#xff08;Cloud Backbone Network&#xff09;。这款产品能够分钟级构建多地域全球网络&#xff0c;并和混合云连成一体&#xff0c;打造具有企业级规模和通信力的智能云上骨干网络。12月…

matlab pca降维_手撸PCA(Python七行代码实现)

直接上代码&#xff1a;x np.random.rand(10,5) #随机生成一组样本 x - x.mean(axis0) # 见详注1 C x.T.dot(x) # 计算自协方差矩阵 lam,v lina.eig(C) # 特征分解&#xff0c;v是 new_index np.argsort(lam)[::-1] # 特征值排序&#xff0c;见详注2 A -v[:,n…

MaxCompute复杂数据分布的查询优化实践

摘要&#xff1a; 2017年中国大数据技术大会于12月7-9日在北京新云南皇冠假日酒店隆重举行, 大会就大数据时代社会各行业的智能化进程和行业实践展开深入讨论。 在12月8日的“大数据分析与生态系统”分论坛上&#xff0c;来自阿里巴巴计算平台事业部的高级技术专家少杰&#xf…

android开源tabview,TabBarView

声明一个TabBarView &#xff0c;同时将ViewPager传递给它&#xff1a;LayoutInflater inflator (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View v inflator.inflate(R.layout.custom_ab, null);tabBarView (TabBarView) v.findViewById(R.i…

Linux 主机信息 总览

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…