首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android TV按索引程序化选择BrowseSupportFragment/RowsSupportFragment项

android TV按索引程序化选择BrowseSupportFragment/RowsSupportFragment项
EN

Stack Overflow用户
提问于 2018-07-31 17:17:42
回答 3查看 1K关注 0票数 2

我想在我所在的行内按索引设置选定视图。从逻辑上讲,可能是这样的:

代码语言:javascript
复制
getRowsSupportFragment().getRowViewHolder(rowIndex).setSelectedPosition(viewIndex);

getRowViewHolder(0)的函数列表中没有任何类似于setSelectedPosition的东西

我已经成功地用下面这行代码逐个更改了选定的行:getRowsSupportFragment().setSelectedPosition(index);,但我想要更改行中的选定视图。

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2018-08-01 03:53:27

要选择一行中的特定项,只需调用setSelectedPosition()

在Java中:

代码语言:javascript
复制
setSelectedPosition(rowindex, true, new ListRowPresenter.SelectItemViewHolderTask(channelIndex));

在Kotlin:

代码语言:javascript
复制
setSelectedPosition(rowindex, true, SelectItemViewHolderTask(channelIndex))

CJ!

票数 2
EN

Stack Overflow用户

发布于 2020-05-12 03:05:51

Kotlin等价

代码语言:javascript
复制
setSelectedPosition(rowIndex, true, object : ListRowPresenter.SelectItemViewHolderTask(itemIndex){
            override fun run(holder: Presenter.ViewHolder?) {
                val itemView = holder?.view
                //do whatever you want
            }
        })
票数 0
EN

Stack Overflow用户

发布于 2021-11-10 06:49:18

代码语言:javascript
复制
    val rowViewHolder = getRowViewHolder(rowIndex)
    val horizontalGridView = (rowViewHolder as ListRowPresenter.ViewHolder).gridView
    horizontalGridView.setSelectedPosition(cardPos)

上面可以用来在需要的行中选择所需的卡片,如果仍然没有处理焦点,添加下面的代码会有所帮助。

代码语言:javascript
复制
   horizontalGridView.getChildAt(cardPos).requestFocus()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51609786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档