我正在使用Leanback库在我的示例代码中显示show的详细信息 . 我使用DetailsSupportFragment扩展了Fragment并使用Presenter显示详细信息 . 我发现的问题是当描述行超过2时,通过按下DPad向下按钮,光标移动正确向下移动到向下的行,但如果小于或等于2,则光标移动到右侧内容(这是我的一个图标)案件) .

这是我的示例代码:

class MyDetailsFragment : DetailsSupportFragment() {

private var mySelector: ClassPresenterSelector? = null
private var myRow: DetailsOverviewRow? = null
private var myAdapter: SparseArrayObjectAdapter? = null

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
/// some code to load data///

var myPresenter = CustomFullWidthDetailsOverviewRowPresenter(myData, CustomPresenter(), DetailsOverviewLogoPresenter()) ;

mySelector?.addClassPresenter(DetailsOverviewRow::class.java, myPresenter)
myRow = DetailsOverviewRow(myData.data)
myAdapter.set(1, myRow)

/// other code 
}

}


//Custom Presenter which sets title and description
class CustomPresenter : Presenter() {
override fun onCreateViewHolder(parent: ViewGroup): CbsAbstractDetailsDescriptionPresenter.ViewHolder {
/// returns view holder
return ViewHolder(v)
}

override fun onBindViewHolder(viewHolder: Presenter.ViewHolder, item: Any) {
// setting views here
}
}


class CustomFullWidthDetailsOverviewRowPresenter(myData: MyDataType, myPresenter: Presenter, logoPresenter: DetailsOverviewLogoPresenter): FullWidthDetailsOverviewRowPresenter {

override fun onLayoutOverviewFrame(viewHolder: FullWidthDetailsOverviewRowPresenter.ViewHolder,
                                       oldState: Int, logoChanged: Boolean) {
// some code //
}

}

Note: I don't have any code to handle DPad button events. Just using ScrollingMovementMethod() to set the scroll movement.