问题描述
我使用 HorizontalGridView 在可滚动的水平列表中显示一些项目。 我的意图是几乎在屏幕的末尾有一个“关键线”,所以当我向右滚动时,来自右侧的项目会与该“线”对齐,因此聚焦的项目位于同一位置。
我已经用这个配置完成了:
windowAlignmentOffset = position of key line
focusScrollStrategy = FOCUS_SCROLL_ALIGNED
windowAlignmentOffsetPercent = WINDOW_ALIGN_OFFSET_PERCENT_disABLED
itemAlignmentOffsetPercent = ITEM_ALIGN_OFFSET_PERCENT_disABLED
我的问题是我希望我的项目与项目末尾的那一行对齐,而不是项目的开头。
我的项目具有可变宽度,所以我不能只是从关键行位置减去一些值。
我想我可能会尝试为每次焦点更改修改关键线位置,但有没有更简单的解决方案?
GridView 或其他东西的选项?
解决方法
我已经想通了。 我需要改变
itemAlignmentOffsetPercent = ITEM_ALIGN_OFFSET_PERCENT_DISABLED
到
itemAlignmentOffsetPercent = 100F
我认为这将项目从右边缘移动了项目宽度的 100%。 因此,项目在其右边缘与“关键线”对齐。
这正是我想要实现的。