android getView 一直是position=0的另外一種狀況

    昨天開發項目遇到Gridview列表顯示不出來,數據list有15條,而getView中只打印一條數據position=0,也就是getView只執行了一次。百度了一下,基本都是設置ListView或gridview的高度時使用了wrap_content,要使用match_parent或指定高度。但是我使用的就是match_parent,並且根佈局也同樣。當我設置一個固定高度,列表就能顯示出來了,我就無語了,match怎麼不行?由於以前寫過不少ListView和Gridview,我嘗試加載別的佈局文件,列表仍是顯示不出來。。。php

    今天仔細對照以前寫的包含列表的代碼,發現onCreateView的inflater.inflate使用兩個參數的方法(使用fragment顯示列表),和以前寫的不一致,改爲inflater.inflate(R.layout.fragment_module1,container,false),試了一下,顯示成功。主要是由於沒設置viewgroup,api文檔上這樣描述:root          Optional view to be the parent of the generated hierarchy (if        attachToRoot is true), or else simply an object that        provides a set of LayoutParams values for root of the returned        hierarchy (if attachToRoot is false.)結合百度到的,引用:參數root須要附加到resource資源文件的跟控件, 因爲inflate()會返回一個View對象,若是第三個參數attachToRoot爲true,就將這個參數做爲根對象返回,不然 僅僅將這個root對象的LayoutParams屬性附加到resource對象的根佈局對象上,也就是將佈局文件resource的佈局參數轉換爲外 層root能夠接受的類型,好比root是一個LinearLayout本身要轉換的resource裏面有 layout_width=」fill_parent」,和layout_height=」fill_parent」參數,可是這些參數沒有外部環境,它 們對應的對象都是ViewGroup.LayoutParams對象,root參數讓系統將ViewGroup.LayoutParams對象轉換爲 LinearLayout.LayoutParams對象。api

參考:http://www.aichengxu.com/view/13370ide

相關文章
相關標籤/搜索