android - 通过保持对中心元素的关注来滚动 VerticalGridView 或 RecyclerView

标签 android android-recyclerview focus leanback

通过将焦点保持在中心元素上来滚动 VerticalGridView。我正在实现一个包含 1 列的 verticalgridview,我想将焦点放在位于中心的单个项目上并移动 verticalgridview。 I want to set focus on center object in vertical grid view and scroll the view by fixing the focus there

最佳答案

VerticalGridView 包含其内置的布局管理器,它正是这样做的。不要不要使用verticalGridView.setLayoutManager(new LinearLayoutManager()),这通常会用到RecyclerView。默认情况下,VerticalGridView 的焦点项目始终位于中心除非项目位于开头/结尾,或者项目太少。

如果元素太少,可以用verticalGridView.setWindowAlignment(WINDOW_ALIGN_NO_EDGE) .现在开始/结束的项目也将位于中心。您还可以根据需要选择 WINDOW_ALIGN_LOW_EDGEWINDOW_ALIGN_HIGH_EDGE。默认值为 WINDOW_ALIGN_BOTH_EDGE

您还可以使用 verticalGridView. setWindowAlignmentOffsetPercent (offsetPercent)手动确定对焦位置。如果offsetPercent为50,则焦点在中心;如果它是 90,它就在底部;如果它是 10,它就在顶部附近,等等。

关于android - 通过保持对中心元素的关注来滚动 VerticalGridView 或 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56934396/

相关文章:

android - 在日历 View 中添加文本

android - 从布局背面动画 ListView

java - Espresso 嵌套回收器 View UI 测试

android - 从谷歌驱动器读取android中App文件夹中的文件

java - 回收器 View 仅在再次启动 Activity 后才显示更新的列表

android - 与 RecyclerView 的数据绑定(bind)未正确呈现

angularjs - 路由更改后无法专注于 Angular 表单文本输入

javascript - 字段焦点在 Firefox 中不起作用,setTimeout(function(){id.focus();},0);

c# - Canon EDSDK 命令 TakePicture 在焦点错误后阻止所有内容

android - 在不访问 Activity 的情况下在 Android 的主线程上执行代码?