我在Google和StackOverflow上搜索了一段时间,但是我找不到解决方案。 是否有可能在Android 2.2或2.1上像sense ui那样获得listview overscroll? 就像在我的闹钟视图中这样:AlarmView Sense UI
我在Google和StackOverflow上搜索了一段时间,但是我找不到解决方案。 是否有可能在Android 2.2或2.1上像sense ui那样获得listview overscroll? 就像在我的闹钟视图中这样:AlarmView Sense UI
看到Chirag的答案得到如此高的评价,我感到震惊。它并没有帮助任何人,因为它是不完整的且没有进一步建设。它也没有引用来源。
原始代码可以在这里找到:http://code.google.com/p/scroll-pager/
另外请注意,scroll-pager代码是根据GPL许可证发布的。
更新: 我和scroll-pager的作者交谈过了,他现在已经切换到MIT许可证。
ListView listView = ... // For example: (ListView) findViewById(R.id.list_view);
OverScrollDecoratorHelper.setUpOverScroll(listView);
如果想将该项目包含在您的项目中,请将以下内容添加到您的build.gradle文件中:
dependencies {
// ...
compile 'me.everything:overscroll-decor-android:1.0.0'
}
http://developer.android.com/reference/android/widget/ScrollView.html
在使用 ListView 时,不应该再使用 ScrollView,因为 ListView 已经自己处理了垂直滚动。更重要的是,这样做会破坏 ListView 针对大型列表进行优化的所有重要措施,因为它实际上强制 ListView 显示其整个项目列表以填充 ScrollView 提供的无限容器。
scrollView = (ScrollView) findViewById(R.id.scr);
contentView = (ViewGroup) findViewById(R.id.r2);
scrollView.setOnTouchListener(new ScrollPager(scrollView, contentView));
scrollView.post(new Runnable() {
public void run() {
scrollView.scrollTo(0, contentView.getPaddingTop());
}
});
public class ScrollPager implements OnTouchListener
public ScrollPager(ScrollView aScrollView, ViewGroup aContentView)
{
mScrollView = aScrollView;
mContentView = aContentView;
scroller = new Scroller(mScrollView.getContext(), new OvershootInterpolator());
task = new Runnable()
{
public void run()
{
scroller.computeScrollOffset();
mScrollView.scrollTo(0, scroller.getCurrY());
if (!scroller.isFinished())
{
mScrollView.post(this);
}
}
};
}