henryblue / TvRecyclerView

A custom RecyclerView for Android TV end
Apache License 2.0
7 stars 4 forks source link

您好,请问如何让holder的view中的控件能有焦点效果 #31

Closed hongguangqq closed 5 years ago

hongguangqq commented 5 years ago

您好,我这边是希望能通在选中某个item时,里面控件设置的background文件能有焦点选中、点击的效果,需要修改那些代码呢?

henryblue commented 5 years ago

isAutoProcessFocus 属性设置为false

hongguangqq commented 5 years ago

再请问下,那如何能让holder里的控件也拿到焦点呢?我这边的设计是一个排行版,1,2,3名在第一排样式有所不同,之后的第二排(4,5,6)....则都是统一样式。我之前想用ScrollView嵌套第一排和您的recycleView(4,5,6),但无法让第一排跟着滚动。

henryblue commented 5 years ago

isAutoProcessFocus 属性设置为false, 就说明不让TVRecyclerView来焦点(也就是说与原生的RecyclerView一样的对焦点的处理(也就是走android的焦点处理机制)), 关于你所说的具体需求,这个与控件无关,具体工作环境不清楚,我也没法帮助你

hongguangqq commented 5 years ago

上次问您的问题,isAutoProcessFocus 属性设置为false后,遥控器无法将焦点移动到holder里的其他控件上,这有方法能解决吗?

hongguangqq commented 5 years ago

我的意思是一个recycleView的item里有两个可点击按钮,如何才能让焦点能够进入到按钮上,请问有方法吗?

henryblue commented 5 years ago

首先这个不是控件的问题, 不过我可以给你提供一个思路, 如果是某个item中含有按钮,你可以在这个item的布局添加android:descendantFocusability=”blocksDescendants”, 如果不起作用, 你就在item的onFocusChange的监听器中强制将焦点设置给button。但是这些都需要要在keydown中处理焦点,将焦点重新给RecyclerView。 只能做参考, 这是你的业务需求了,只能给你这些建议

hongguangqq commented 5 years ago

谢谢,还有一点就是在holder内部的控件设置focusable为true的话,经常会宝layoutParams无法转换为Recycle.LayoutParams的错误