在網上看到如下的解決方案,我現在定義了多個listview,所以出現了有時候起作用有時候不起作用,錯誤的解決方法如下:
- 錯誤解決方案1:
- 錯誤解決方案2:
正確解決方案,重寫
ScrollView
,添加如下方法
- 正確解決方案:
/**
* 禁止ScrollView內佈局變化後自動滾動
*/
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
return 0;
}
解決了上面的問題,其實在ScrollView鑲嵌listview/gridView中最常見的一個問題就是,數據顯示不全的問題,網上有如下錯誤的做法,也是我剛開始做android項目當時的錯誤解決方法:
- 錯誤解決方法1:
正確的解決方案就是重寫listview或者gridview
- 正確幾覺方案:
/**
* 防止listview和gridview、ScrollView的衝突
* @author zsl
* @blog http://blog.csdn.net/yy1300326388
*
*/
public class MyListView extends ListView {
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
//防止數據顯示不全
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}