我正在开发一款Android TV应用程序,其中一个活动包含一些按钮。单击按钮后,RecyclerView(在同一个活动中)会被填充并自动聚焦。
问题是,当使用DPAD向按钮的方向导航时,RecyclerView会失去焦点而转移到按钮上。我希望防止这种行为,即防止RecyclerView失去焦点到活动上的其他内容。稍后,选择另一个按钮的唯一方法是点击返回按钮,这个我可以做到,没有问题。
这是我尝试过但未成功的方法:
在第二种方法中,除非在RecyclerView中使用
问题是,当使用DPAD向按钮的方向导航时,RecyclerView会失去焦点而转移到按钮上。我希望防止这种行为,即防止RecyclerView失去焦点到活动上的其他内容。稍后,选择另一个按钮的唯一方法是点击返回按钮,这个我可以做到,没有问题。
这是我尝试过但未成功的方法:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/categories_rv"
android:layout_width="@dimen/categories_list_width"
android:layout_height="wrap_content"
android:focusable="true"
android:nextFocusForward="@id/categories_rv"
android:nextFocusUp="@id/categories_rv"
android:nextFocusRight="@id/categories_rv"
android:nextFocusLeft="@id/categories_rv"
android:nextFocusDown="@id/categories_rv"
android:focusableInTouchMode="true" />
并且这个:
binding.categoriesRv.setOnFocusChangeListener { v, hasFocus ->
if (!hasFocus)
v.requestFocus()
}
在第二种方法中,除非在RecyclerView中使用
android:descendantFocusability ="blocksDescendants"
,否则FocusChangeListener不会被调用,但这会防止RecyclerView的项目获得焦点。
BrowseFrameLayout
和HorizontalGridView
作为BrowseFrameLayout
的子项。 - AkshayTmContainer
是什么?假设我已经创建了一个自定义的LinearLayout
作为父级,在其中添加此代码。而recycleView
将成为自定义LinearLayout
的子级。 - AkshayT