我需要显示一个问题以及我从服务器获取的选项列表。每个选项都有一个标题和一个图像,这些选项应该是可点击的。所以我创建了一个扩展到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