我正在尝试调整
Grid layout
中的动态按钮。
问题:
但是,如果文本是多行,则在行中形成按钮 不是必要的。
String item [] = new String [] {" item1"," item2"," item3 yes", " ITEM4"" ITEM5"};
按钮[] myButton = new Button [item.length];
GridLayout scrViewButLay = (GridLayout) findViewById(R.id.grid);
scrViewButLay.setColumnCount(4);
scrViewButLay.setRowCount(10);
// GridLayout.LayoutParams leftMarginParams = new GridLayout.LayoutParams( //);
for (int index = 0; index < item.length ; index++) {
myButton[index] = new Button(this); //initialize the button here
myButton[index].setText(item[index]);
myButton[index].setHeight(100);
myButton[index].setWidth(100);
myButton[index].setTag(index);
scrViewButLay.addView(myButton[index]);
}
}
答案 0 :(得分:0)
我建议使用适配器,然后根据需要进行自定义 看看这个例子 http://androidexample.com/Custom_Grid_Layout_-_Android_Example/index.php?view=article_discription&aid=76
答案 1 :(得分:0)
我认为使用带有GridLayoutManager的recyclerView可以帮助你。
这篇文章https://inducesmile.com/android/android-gridlayoutmanager-with-recyclerview-in-material-design/可以帮到你。
答案 2 :(得分:0)
您只需要应用layout_gravity,因为默认值似乎是将文本对齐到相同的高度(这就是为什么它仅在具有两行的项目3上发生的原因。)
GridLayout.LayoutParams param =new GridLayout.LayoutParams();
param.height = GridLayout.LayoutParams.WRAP_CONTENT;
param.width = GridLayout.LayoutParams.WRAP_CONTENT;
param.setGravity(Gravity.BOTTOM);