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

War*_*zit 5 animation android listview fragment

如何为listFragment创建平滑的setSelection(position).对于常规列表视图,可以调用smoothScrollToPosition(position),但这仅适用于api lvl 8及更高版本,但这并不重要,因为它不适用于listfragment而不适用于api lvl 7.

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

Bri*_*ley 22

马克·d是正确的,如果你要平滑滚动ListViewListFragment,你需要调用getListView()ListFragment,然后调用smoothScrollToPosition(int)ListView时返回.当然,这仅适用于API级别8,因为这是在smoothScrollToPosition(int)引入时AbsListView的超类ListView.

我想你可以看一下代码AbsListView.java,看看它做什么,并尝试复制它在自己的子类AbsListViewListView.这是不清楚这smoothScrollToPosition(pos)只是调用start(pos)的一个内部类的一个实例PositionScroller,但它看起来有些复杂复制这种行为在自己的子类,因为PositionScroller被从其他几个景点,如被称为onDetachedFromWindow(),public void onWindowFocusChanged(boolean hasWindowFocus).我根本不清楚如何根据API 7版本将您的PositionScroller行为整合到您的子类中AbsListView.

如果是我的决定,API 7及更早的组成访问Android Market的最新设备的不到8%的数据集,我只是踢,做一些简单的像setSelectionFromTop每当API低于8(通过构建检测.VERSION.SDK_INT).


Mar*_*k D 6

我不认为你可以为API级别7执行此操作,但看看你是否不能通过这样的顺利滚动:

listFragment.getListView().smoothScrollToPosition(0);
Run Code Online (Sandbox Code Playgroud)