【发布时间】:2017-02-22 13:41:56
【问题描述】:
我需要显示一个问题以及我从服务器获取的选项列表。每个选项都有一个标题和一个图像,这些选项应该是可点击的。所以我正在创建一个扩展为RelativeLayout 的类ImageButton,每个选项都是一个ImageButton。我还创建了一个类 ImageButtonGroup 扩展为 GridLayout 并将所有 ImageButtons 动态添加到此 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实际行为的屏幕吗?
-
更新了实际屏幕。
标签: android android-layout grid-layout