gpt4 book ai didi

android - 实现 "faster"backToTop - ListView

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:33 25 4
gpt4 key购买 nike

我在 Fragment 中有一个 ListView,它作为选项卡添加到 ViewPager 中。我希望用户能够通过简单地点击他们已经在的选项卡 (onTabReselected()) 来滚动“backToTop”。我已经有一个工作代码可以做到这一点;然而,我使用的代码滚动回位置 0 的时间太长,这在小列表上非常整洁,但在 250 首歌曲的集合中,它肯定会让用户烦恼。

这是我的代码:

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
switch (tab.getPosition()) {
case 0:
if (tab.getPosition() == mCurPagerItem) {
final ListView list = (ListView) findViewById(android.R.id.list);
list.smoothScrollToPosition(0);
}
break;
case 1:
if (tab.getPosition() == mCurPagerItem) {
final GridView list = (GridView) findViewById(R.id.artist_grid);
list.smoothScrollToPosition(0);
}
break;
case 2:
if (tab.getPosition() == mCurPagerItem) {
final ExpandableListView list = (ExpandableListView) findViewById(R.id.exp_list);
list.smoothScrollToPosition(0);
}
break;
default:
break;
}
}

我在位置之间切换的地方,因为我的不同 fragment 具有不同的“列表”类型。正如我所说,这段代码确实运行良好,但是有没有更快的方法可以滚动回顶部?更即时的东西。

澄清一下,当我说它“需要太长时间”时,那是因为 smoothScrollToPosition 本身是一种在列表上滚动的缓慢方式,据说是为了让它看起来更好看。

注意我试过:

list.scrollTo(0, 0);

但这实际上似乎对 listView 的当前位置没有任何影响。我想这更像是一个 View 调用,一个 ListView 方法本身。

有什么想法吗?

最佳答案

尝试调用 setSelection(),它不执行任何动画:

list.setSelection(0);

关于android - 实现 "faster"backToTop - ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005949/

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