dan*_*c05 4 android smooth-scrolling android-listview android-actionbar
我在一个片段中有一个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;
}
}
Run Code Online (Sandbox Code Playgroud)
由于不同的片段具有不同的“列表”类型,因此我在两个位置之间切换。就像我说的那样,这段代码确实可以很好地工作,但是有没有一种更快的滚动回顶部的方法?更即时的东西。
只是为了澄清一下,当我说它“花费太长时间”时,这是因为smoothScrollToPosition本身是一种在列表上滚动的慢速方法,应该使它看起来更好。
注意我确实尝试过:
list.scrollTo(0, 0);
Run Code Online (Sandbox Code Playgroud)
但这实际上似乎对listView的当前位置没有任何作用。我想这更多是一个View调用,一个ListView方法本身。
有任何想法吗?
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |