2013-04-17 29 views
2

我正在動態地向GridLayout添加線性佈局。我希望能像網格視圖一樣顯示。是否有可能計算可以在一行中放置多少線性佈局,併爲網格佈局設置列數,或者我應該使用gridview自動對齊它們。動態設置網格佈局的行數和列數

回答

2

如果要根據GridLayout的寬度計算列計數,請覆蓋onMeasure方法。它提供了widthSpecheightSpec作爲參數,從中您可以使用MeasureSpec.getSize()以像素爲單位獲得實際寬度和高度。從那裏,根據剛剛找到的GridLayout的寬度計算您想顯示的列數,並使用setColumnCount使其顯示該列數。

+1

我知道有一點晚了,但並不像這樣簡單。您還需要重新計算或使每個子視圖的佈局參數的行和列規格無效,並在調用'setColumnCount(int)'之前調用'requestLayout()'。不這樣做通常會導致IllegalArgumentException。 – drdaanger