我正在尝试在Android中以编程方式显示5x5的按钮网格。但它不会显示整个网格
XML代码:
<LinearLayout
android:id="@+id/mainTableLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>Java代码:
LinearLayout mainTable = findViewById(R.id.mainTableLayout);
for(int i = 0; i < COUNT_COLUMS; i++) {
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
for (int j = 0; j < COUNT_COLUMS; j++) {
Button button = new Button(this);
linearLayout.addView(button);
}
mainTable.addView(linearLayout);
}发布于 2019-05-18 05:39:15
这应该是可行的:
LinearLayout mainTable = findViewById(R.id.mainTableLayout);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int DeviceTotalWidth = metrics.widthPixels;
int with = DeviceTotalWidth / 5;
for (int i = 0; i < 5; i++) {
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
row.getWeightSum();
for (int j = 0; j < 5; j++) {
Button btnTag = new Button(this);
btnTag.setLayoutParams(new LinearLayout.LayoutParams(with, LinearLayout.LayoutParams.WRAP_CONTENT));
btnTag.setText("" + (j + 1 + (i * 5)));
btnTag.setId(j + 1 + (i * 5));
row.addView(btnTag);
}
mainTable.addView(row);
}但是更好的方法是使用GridLayout!
https://stackoverflow.com/questions/56193728
复制相似问题