解決ScrollView下嵌套ListView/GridView進頁面不在頂部的問題以及數據顯示不全的問題( 只顯示一行)

在網上看到如下的解決方案,我現在定義了多個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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章