您的位置:首页 > 移动开发 > Android开发

Android 去掉ListView/GridView下拉出空白回弹的效果

2013-05-22 17:24 696 查看
前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         [b][b]CSDN[/b]:[/b]http://www.csdn.net

         雨季o莫忧离:http://blog.csdn.net/luckkof
正文

 



如果想在所有列表界面都去掉这种回弹效果,可以做如下改动

[SOLUTION]

请做如下修改:

1.alps/frameworks/base/core/java/android/view/ViewConfiguration.java

修改如下两个变量为如下的值

    /**

     * Max distance to overscroll for edge effects

     */

    private static final int OVERSCROLL_DISTANCE = 0;  //将240改为0

    /**

     * Max distance to overfling for edge effects

     */

    private static final int OVERFLING_DISTANCE = 6;   //将240改为6

2.alps/frameworks/base/core/java/android/widget/AbsListView.java

找到FlingRunnable这个类的run()方法

找到run()方法中的 case TOUCH_MODE_OVERFLING,在这个case中,找到如下代码段:

                        if (DBG_MOTION) {

                            Xlog.d(TAG, "FlingRunnable overScrollBy return false: mScrollY = " + mScrollY

                                    + ",old scrollY = " + scrollY + ",needChangeMode = " + needChangeMode

                                    + ",mScroller.getCurrVelocity() = " + mScroller.getCurrVelocity());

   }

                        if (needChangeMode && mOverscrollDistance >0) {     // edit line

                          Xlog.i(TAG, "FlingRunnable oComing back to 'real' list flinging:velocity = "

                                    + mScroller.getCurrVelocity() + ",mItemCount = " + mItemCount);

                          // Coming back to 'real' list flinging.

                          invalidateParentIfNeeded();

   将if (needChangeMode && mOverscrollDistance >0) {  这个if判断语句改为如上所示

注意:上述的修改是将MTK在Google默认的效果基础上所添加的那个下拉回弹的效果去掉,将其恢复到Google原始的那种list界面拉到顶部或底部有模糊边缘的那种效果,如果要去掉list模糊边缘效果,请参考上一条FAQ。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android ListView