gpt4 book ai didi

Android 如何为 listfragment 制作动画 setSelection()?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:24 24 4
gpt4 key购买 nike

如何为 listFragment 进行平滑的 setSelection(position)。对于常规 ListView ,可以调用 smoothScrollToPosition(position) 但这仅适用于 api lvl 8 及以上但这并不重要,因为它不适用于 listfragment 并且不适用于 api lvl 7。

非常感谢任何有助于实现这一点的想法和建议。

最佳答案

Mark D 是正确的,如果你想平滑滚动 ListFragment 中的 ListView,你需要调用 getListView() ListFragment,然后在返回的 ListView 上调用 smoothScrollToPosition(int)。当然,这仅适用于 API 级别 8,因为那时 smoothScrollToPosition(int) 被引入 AbsListViewListView 的父类(super class)。

我想您可以查看 AbsListView.java 中的代码,看看它做了什么,然后尝试在您自己的 AbsListViewListView 子类中复制它。很明显,smoothScrollToPosition(pos) 只是在内部类 PositionScroller 的实例上调用了 start(pos),但看起来有点复杂在您自己的子类中复制该行为,因为 PositionScroller 从其他几个地方调用,例如 onDetachedFromWindow()public void onWindowFocusChanged(boolean hasWindowFocus) .我一点都不清楚如何根据 AbsListView 的 API 7 版本将 PositionScroller 行为干净地集成到子类中。

如果这是我的决定,在最新的 data set 中,API 7 及更早版本在访问 Android Market 的设备中所占比例不到 8% ,只要 API 低于 8(由 Build.VERSION.SDK_INT 检测到),我就会下注并做一些更简单的事情,比如 setSelectionFromTop

关于Android 如何为 listfragment 制作动画 setSelection()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9466925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com