我需要顯示一個問題以及我從服務器獲取的選項列表。每個選項都有一個標題和一個圖像,這些選項應該是可點擊的。所以我創建了一個擴展到RelativeLayout的類ImageButton,每個選項都是一個ImageButton。我也創建一個擴展到GridLayout的類ImageButtonGroup,並動態地將所有的ImageButton添加到這個ImageButtonGroup。將自定義按鈕動態分配到自定義網格佈局
它工作正常,除了ImageButtons的對齊。 ImageButton的大小取決於標題文本的長度(對於所有選項,圖像的大小相同),我很難將相等的單元格空間分配給網格佈局中的每個ImageButton。請參閱下面我的代碼在那裏我加入ImageButtons到ImageButtonGroup:
ImageButtonGroup imageButtonGroup =
(ImageButtonGroup)
mInflater.inflate(
R.layout.button_image_response_layout, holder.richTextContainer, false);
int total = item.getMessage().getResponseOptions().size();
int col = 3;
int row = total/col;
imageButtonGroup.setColumnCount(col);
imageButtonGroup.setRowCount(row + 1);
for (int i = 0; i < total; i++) {
ResponseOption responseOption = item.getMessage().getResponseOptions().get(i);
ImageButtonView imageButtonView =
(ImageButtonView)
mInflater.inflate(
R.layout.image_button_layout, holder.richTextContainer, false);
imageButtonView.setData(
responseOption.getImage(), responseOption.getViewText(), responseOption.getValue());
GridLayout.LayoutParams gridParam = new GridLayout.LayoutParams();
gridParam.setGravity(Gravity.CENTER);
gridParam.topMargin = 10;
gridParam.bottomMargin = 10;
gridParam.width = GridLayout.LayoutParams.WRAP_CONTENT;
gridParam.height = GridLayout.LayoutParams.WRAP_CONTENT;
imageButtonGroup.addView(imageButtonView, gridParam);
如何動態地分配固定大小細胞到網格佈局內的這些按鈕?
你可以把你的GridView的實際行爲的屏幕? –
更新了實際屏幕。 – Prabhat