关于阻尼效果,之前的帖子已经有过详细介绍
主要说下ScrollView嵌套ListView冲突问题,由于Listview本身就是继承ScrollView而来的,所以在ScrollView里嵌套ScrollView肯定会发生冲突。
解决方案:重写ListView或者GridView的OnMesure 方法。
自定义ListView
import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
调用方法:
listView = (MyListView) findViewById(R.id.listView);
BounceScrollView scrollView = (BounceScrollView) findViewById(R.id.scrollView);
scrollView.smoothScrollTo(0,0);
阻尼效果的BounceScrollView详见:http://www.cnblogs.com/yangcong/p/3525061.html
参考帖子:http://www.apkbus.com/forum.php?mod=viewthread&tid=123514