时间:2021-05-21
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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android开发之ListView的简单用法及定制ListView界面操作。分享给大家供大家参考,具体如下:效果:如何从获得listview上i
主要分析Android中Listview滚动过程造成的图片显示重复、错乱、闪烁的原因及解决方法,顺便跟进Listview的缓存机制。1、原因分析Listview
android的listview,当item里面有可点击的元素,比如说checkbox,焦点就会给了checkbox,点击item就无效了。解决方法是在item
水平的ListView-HorizontalListView的使用Android中ListView默认的是竖直方向的滑动,由于项目的需求,需要ListView是
Android处理OnItemClickListener时关于焦点颜色的设置问题当我们使用OnItemClickListener来改变Item以使其比较突出时,