GridView不能添加頭佈局,而且scrollView與GridView衝突致使一些頁面沒法融合

此貼爲標記貼 方便下次使用ide

在項目需求中本來是用ScrollView來進行整個頁面的滑動,ScrollView裏面包含的有圖片輪播,文字輪播,與2列GridView的item函數

問題blog

使用原生的GridView ,ScrollView與GridView的滑動就成了分開的不能再一塊兒滑動而且還有gridView進到ScrollView下面等小問題圖片

百度後重寫GridView的onMeasure函數後出現一次性把數據加載完 致使內存問題。內存

 

解決方法
使用RecyclerView代替了GridView 我使用的是PullToRecycler 由於項目還有刷新與加載
 
在RecyclerView設置GridLayoutManager的時候設置manager的setSpanSizeLookup函數


例如:
final GridLayoutManager gridLayoutManager = new GridLayoutManager(context, 2);
/**這裏將第一個item也就是添加的heard設置爲一行而不是*/
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
    //isHeader(position)是從adapter中返回當前的position是否是第一個,而後設置寬度
return adapter.isHeader(position) ? gridLayoutManager.getSpanCount() : 1;
}
});
recycler_view.setLayoutManager(gridLayoutManager);


adapter的獲取是否是第一個函數
public boolean isHeader(int position)
{
return position == 0;
}


添加頭不是在下拉後才能看到而是adapter的第一個位置
添加頭的代碼就是pulltoRefresh裏

我用的是jingchen大神的需注意get

相關文章
相關標籤/搜索