3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
你有2個(gè)解決方案:
編寫(xiě)自己的自定義布局。這將是更難的解決方案(但可能被認(rèn)為是正確的解決方案)。
GridView在代碼中設(shè)置您的實(shí)際高度。例如:
RelativeLayout.LayoutParams lp =(RelativeLayout.LayoutParams)myGridView.getLayoutParams();
// lp.setMargins(0,0,10,10); //如果你有布局邊距,你也必須設(shè)置它們
lp.height = measureRealHeight(...);
myGridView.setLayoutParams(LP);
該measureRealHeight()方法應(yīng)該看起來(lái)像這樣(希望我做對(duì)了):
private int measureRealHeight(...)
{
final int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
final double screenDensity = getResources().getDisplayMetrics().density;
final int paddingLeft = (int) (X * screenDensity + 0.5f); // where X is your desired padding
final int paddingRight = ...;
final int horizontalSpacing = (int) (X * screenDensity + 0.5f); // the spacing between your columns
final int verticalSpacing = ...; // the spacing between your rows
final int columnWidth = (int) (X * screenDensity + 0.5f);
final int columnsCount = (screenWidth - paddingLeft - paddingRight + horizontalSpacing - myGridView.getVerticalScrollbarWidth()) / (columnWidth + horizontalSpacing);
final int rowsCount = picsCount / columnsCount + (picsCount % columnsCount == 0 ? 0 : 1);
return columnWidth * rowsCount + verticalSpacing * (rowsCount - 1);
}
上面的代碼應(yīng)該適用于A(yíng)ndroid 1.5+。
- 3 回答
- 0 關(guān)注
- 607 瀏覽
添加回答
舉報(bào)