Android TV listview及焦点处理

发布时间 - 2026-01-11 01:51:56    点击率:

Android TV listview及焦点处理

Android TV上的listview ,因为没有touch事件,只能通过按键处理,因此,用到listview时需要特殊处理:

1.复杂的view需要获取焦点,需要设置:

setItemsCanFocus(true)

同时需要设置下能获取焦点view的属性:

android:focusable="true

这样子级view就可以获取获取焦点。

2.view中需要获取焦点需要高亮框效果,可以在view画外框:

package com.cn21.ecloud.tv.ui.widget; 
 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Rect; 
import android.graphics.drawable.Drawable; 
import android.util.AttributeSet; 
import android.widget.RelativeLayout; 
 
public class SelectedRelativeLayout extends RelativeLayout{ 
  private Drawable mFloatDrawable; 
  private Rect mTempRect = new Rect(); 
 
  public SelectedRelativeLayout(Context context) { 
    this(context, null, 0); 
  } 
 
  public SelectedRelativeLayout(Context context, AttributeSet attrs) { 
    this(context, attrs, 0); 
  } 
 
  public SelectedRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) { 
    super(context, attrs, defStyleAttr); 
    mFloatDrawable = getResources().getDrawable(R.drawable.item_float_rectangle); 
  } 
 
  @Override 
  protected void dispatchDraw(Canvas canvas) { 
    super.dispatchDraw(canvas); 
    if (hasFocus()) { 
      if (mFloatDrawable != null) { 
        final int w = getMeasuredWidth(); 
        final int h = getMeasuredHeight(); 
        mFloatDrawable.getPadding(mTempRect); 
        mFloatDrawable.setBounds(-mTempRect.left, -mTempRect.top, 
            w + mTempRect.right, h + mTempRect.bottom); 
        mFloatDrawable.draw(canvas); 
      } 
    } 
  } 
} 

布局中直接使用这个view

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # TV  # listview及焦点处理  # listview  # Android基于TextView不获取焦点实现跑马灯效果  # Android 实现不依赖焦点和选中的TextView跑马灯  # android tv列表焦点记忆实现的方法  # 希望能  # 谢谢大家  # 这样子  # 使用这个  # 就可以  # 时需  # package  # ecloud  # 画外框  # import  # drawable  # 高亮 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎样使用JSON进行数据交换_它有什么限制  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何使用.env文件管理环境变量?(最佳实践)  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel如何使用模型观察者?(Observer代码示例)  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何挑选优质建站一级代理提升网站排名?  如何将凡科建站内容保存为本地文件?  iOS中将个别页面强制横屏其他页面竖屏  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何用花生壳三步快速搭建专属网站?  详解vue.js组件化开发实践  南京网站制作费用,南京远驱官方网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  教你用AI润色文章,让你的文字表达更专业  高端网站建设与定制开发一站式解决方案 中企动力  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  三星、SK海力士获美批准:可向中国出口芯片制造设备  C语言设计一个闪闪的圣诞树  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何快速打造个性化非模板自助建站?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel怎么实现验证码(Captcha)功能  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  网站图片在线制作软件,怎么在图片上做链接?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Android实现代码画虚线边框背景效果  如何在腾讯云服务器快速搭建个人网站?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Java遍历集合的三种方式  如何用PHP快速搭建高效网站?分步指南  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  太平洋网站制作公司,网络用语太平洋是什么意思?  如何用低价快速搭建高质量网站?  想要更高端的建设网站,这些原则一定要坚持!  专业商城网站制作公司有哪些,pi商城官网是哪个?  图册素材网站设计制作软件,图册的导出方式有几种?  JS经典正则表达式笔试题汇总