【发布时间】:2010-07-22 21:06:49
【问题描述】:
我知道setSelection()、setSelectionFromTop() 和setSelectionAfterHeaderView(),但它们似乎都没有按照我的意愿行事。
给定列表中的一个项目,我想滚动它以使其可见。如果该项目在列表的可见窗口上方,我想滚动直到该项目是列表中的第一个可见项目;如果该项目位于可见窗口下方,我希望它向上滚动,直到它是列表中的最后一个可见项目。如果该项目已经可见,我不希望发生任何滚动。
我该怎么做?
【问题讨论】:
-
你提到的那些方法为什么不起作用?当你在你想要的项目上设置选择时会发生什么? (我知道这是一个老问题。如果您现在已经解决了这个问题,请发布您的解决方案,我将不胜感激)
-
@T3Roar:我确实解决了它,结合 setSelection() 和 setSelectionFromTop(),担心列表高度和项目高度,当然还有项目在列表中的位置。恐怕这是一团糟,而且我无论如何也不能分享代码——但它是可以解决的。也许如果我有机会我会写一个我可以分享的通用解决方案,但是我现在所拥有的只是在我已经掌握的上下文之外没有用。对不起!
-
我很高兴只使用了一些 setSelection() 来实现,而不是其他一些疯狂的解决方法。感谢您的回复:)
-
嗨,Carl,您是否针对此问题制定了更通用的解决方案?我正在处理一个列表视图,我需要一个类似的行为来设置一个项目的选择。如果您能分享您在此问题上所做的更多知识或工作,我将不胜感激。谢谢!
-
恐怕我没有,@Gix,但感谢您的提醒。我应该这样做;很抱歉,我还没有得到它。